私は私の列挙型の値を取得する必要があるので、私は、次のコマンドを使用しています:C#で単純な配列から要素を取得するには?
Array a = Enum.GetValues(typeof(Typ));
しかし、典型的な発現 [X] は、なぜ、動作しませんか? OPのコメントに基づいて
おかげ
私は私の列挙型の値を取得する必要があるので、私は、次のコマンドを使用しています:C#で単純な配列から要素を取得するには?
Array a = Enum.GetValues(typeof(Typ));
しかし、典型的な発現 [X] は、なぜ、動作しませんか? OPのコメントに基づいて
おかげ
は、彼が実際にではなく、名の、値Enum
のに興味がないかもしれません。この区別は初心者にとっては簡単に分かりにくいものです。 ヒント:エラーを含む質問をすると、エラーメッセージが表示されるなど、よく役立ちます。
あなたはEnum
内の名前を探しているなら、試してみてください。まあ
string[] names = Enum.GetNames(typeof(Typ));
、Enum.GetValues
はジェネリックではありませんので。
あなたが書く場合:
var a = Enum.GetValues(typeof(Typ));
Console.WriteLine(a.GetType());
あなたが得られます: "Namespace.Typ []"。しかし、メソッドが汎用ではないため、コンパイラは、指定された型を基にした戻り値の型を変更できないため、配列の基本型であるSystem.Array
を返し、予期した型にダウンキャストするために型キャストを使用する必要があります。
Typ[] a = (Typ[])Enum.GetValues(typeof(Typ));
DB SPパラメータのカスタムクラスを変換するときにemumを処理するために、次のコードを使用しています。それを行うには、私の意見では
public static object ParamValue<T>(Enum value)
{
if (value == null)
return System.DBNull.Value;
else
return (T)Enum.Parse(value.GetType(), value.ToString());
}
適切な方法は次のとおりです。その後、
Array a = Enum.GetValues(typeof(Typ));
とによって位置にある要素を取得: "動作しない" とは何
a.GetValue(elementsIndex);
?また、なぜ各列挙型の名前の名前を使用するのではなく、任意のインデックスによって特定の要素にアクセスしますか? – BoltClock
私はstring = a [1]のようなelmementを取ることができません。ちょうど[]表記が機能しません – Mirial
はい、「動作しません」とは何ですか?どのように動作しませんか?それはどのようなエラーですか? – BoltClock