私は、メソッドの引数として列挙型を渡すことができますどのように思っていました。
私は、コンボボックスを取得し、列挙し、コンボボックスに列挙の各項目を入力する一般的なメソッドを作成しようとしています。
私は、メソッドの引数として列挙型を渡すことができますどのように思っていました。
私は、コンボボックスを取得し、列挙し、コンボボックスに列挙の各項目を入力する一般的なメソッドを作成しようとしています。
Convert Enum To Dictionaryに参照のうえ:
public static IDictionary<String, Int32> ConvertEnumToDictionary<K>()
{
if (typeof(K).BaseType != typeof(Enum))
{
throw new InvalidCastException();
}
return Enum.GetValues(typeof(K)).Cast<Int32>().ToDictionary(currentItem => Enum.GetName(typeof(K), currentItem));
}
次にあなたが返される辞書項目であなたのコンボボックスを埋めることができます。
だけでなく、次を参照してください:あなたが使用することができます
+1私はそれが好きでした! – Dummy01
ここのような一般的な列挙ヘルパーの種類を使用することができます:http://devlicious.com/blogs/christopher_bennage/archive/2007/09/13/my-new-little-friend-enum-lt-t-gt.aspx。
私はポストしようとしていましたが、そのリンクの最後にあるものとまったく同じです。 – Rangoric
:
Enum.GetValues(typeof(MyEnumType))
と、ちょうどその
編集からコンボボックスの項目を読み込みます:もちろんreflを使う
private void Method(Enum tEnum)
{
Enum.GetValues(tEnum.GetType());
}
とでgetValuesはあなたにその列挙のために可能な値が得られます:あなたは一般的に次のように列挙型を渡すことができます列挙型:)
を取得するection。
使い方は少し奇妙に次のようになります。
Method(EnumType.Value)
ので、それはだけでなく、他のアイデアに適合しない場合があります。
この方法を使用すると、キャンこのように列挙のいずれかのタイプを追加します。AddItems(myCombobox, typeof(Options))
public void AddItems (ComboBox cboBox, Type enumType)
{
cboBox.Items.AddRange(Enum.GetValues (enumType).Cast<object>().ToArray());
}
enum Options
{
Left, Right, Center
}
を、私は、これが最良の例で説明されていると思う:
enum MyEnum
{
One,
Two,
Three
}
:あなたが列挙型を持っている
セイ
次のようなメソッドを宣言できます。
public static void MyEnumMethod(Enum e)
{
var enumValues = Enum.GetValues(e.GetType());
// you can iterate over enumValues with foreach
}
そして、あなたはそうのようにそれを呼び出します:あなたが持っている問題が何であるかを
MyEnumMethod(new MyEnum());
? – Bueller