オブジェクトが列挙型かどうかをテストする


回答:


203

問題は答えです。:)

bool isEnum = theObject is Enum;

13
大好きです!そしてさらに質問に近い:if(theObject is Enum){...}
Peter Lillevold

5
これは私がここに来た目的でさえありません、そして私はあなたにポイントを与えています。それはとてもきれいです... <sniff>、それは美しい男ですTT
Lukas

12
/ * Test * / if(anObjectは/ * an * / Enum){}
Tom Fobear

bool isEnum = theObject.GetType()。IsEnum; Enumが常にtrueを返すとは限りません
chris hu

67

がある場合Typeは、Type.IsEnumプロパティを使用します。例:

bool isEnum = theObject.GetType().IsEnum;

2
これでうまくいきました。受け入れられた回答をVB.NETで機能させる方法を理解できませんでした。
Shea Daniels

4
実際にTypeは、列挙型であることを確認する方法を知る必要がありました。+1
ネイサン


0

ジェネリック型パラメーターの場合、パラメーターをテストするのではなく、制約することができます。

where T : Enum
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.