一部の値が列挙型で定義されているかどうか、または C++ での実行時にチェックする必要があります。この要件は、C# で簡単に実現できます (次のコードを参照してください)。しかし、C++ には実行時に型情報がありません (私の知る限り)。回避策はありますか?
PS: 私のプロジェクトでは、enum 型は数百の値を定義するため、ソース コードで値を複製したくありません (たとえば、マップを作成し、すべての有効な値をそれにプッシュします)。保守性。
enum BoFormObjectEnum
{
fo_Items = 4,
fo_SalesEmployee = 53,
fo_TransactionTemplates = 55,
fo_JournalPosting = 30,
fo_CheckForPayment = 57,
fo_PaymentTermsTypes = 40,
...
}
class Program
{
static void Main(string[] args)
{
var array = Enumerable.Range(1, 60);
foreach (var item in array)
{
if (Enum.IsDefined(typeof(BoFormObjectEnum), item))
// do some logic
else
// do some other logic
}
}
}