我想知道如何可以傳遞一個枚舉類型作爲方法的參數。
我試圖創建一個通用的方法,將需要一個組合框,並枚舉,並填寫與枚舉的每個項目的組合框。
我想知道如何可以傳遞一個枚舉類型作爲方法的參數。
我試圖創建一個通用的方法,將需要一個組合框,並枚舉,並填寫與枚舉的每個項目的組合框。
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會給你是有可能的是枚舉值。
的使用將是一個有點奇怪:
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