2016-10-31 9 views
0

にその名前で検索すると、列挙型クラスにtypeofを使用した:私はそのようなコードを実装する方法を探していますC#の

public enum Enum1 
{ 
    a=0,b 
} 

string enumName="Enum1"; 

Enum[] myEnum = (Enum[])Enum.GetValues(typeof(enumName)); 

私は自分の名前で列挙型のセットを取得したいです。 "typeof"部分は機能しません。助けてください。

+0

MSDNを参照してください。名前空間を前置きすることを忘れないでください(typeof(Enum1).Namespace) –

答えて

5

typeofは、明らかにコンパイル時に既知の型に対してのみ機能するコンパイル時の演算子です。

あなたがstringを使用して、特定のタイプをロードする必要がある場合は、代わりにType.GetType()メソッドを使用することができます。

Enum[] myEnum = (Enum[])Enum.GetValues(Type.GetType(enumName)); 

はあなただけで、完全な名前空間を典型的には必要だろうということ、しかし、覚えておいてくださいクラス名。例:"MyNamespace.Enums.Enum1"

あなたはその後、Type.GetType(enumName)を使用するタイプが必要

関連する問題