0

次のenum宣言があります。

enum MyType
{
   Boolean,
   Int,
   Double,
   String
}

次に、 がある場合、値が列挙値に対応する bool、int、double、または string のいずれであるstring abc = "anyvalue"かを確認するにはどうすればよいですか?abcmyType

4

2 に答える 2

6

メソッドを使用できますEnum.TryParse。値が列挙値の 1 つに正常に解析され、解析された列挙値も出力された場合、これは true を返します。

解析を実行するときに大文字と小文字を区別したくない場合は、ブール値パラメーターを受け入れるオーバーロードを使用します。

MyType type;
if (Enum.TryParse(abc, out type))
{
    // can be parsed
    switch (type)
   {
       case MyType.Boolean: break;
       case MyType.Int: break;
       case MyType.Double: break;
       case MyType.String: break;
   }
}

使用することもできますEnum.IsDefinedが、このメソッドは常に大文字と小文字を区別して検索を行うため、柔軟性が低くEnum.TryParse、名前が定義されているかどうかを知るためにしか使用できません。

于 2012-08-22T11:15:37.050 に答える
0

これを使って:

MyType dummy;
if(bool isEnum = Enum.TryParse(mystring,out dummy))
{
// mystring is a valid enum 
}
于 2012-08-22T11:16:31.843 に答える