我查過了(可能還不夠),但找不到答案。C#:有沒有辦法將一個枚舉作爲參數傳遞?
我想做一個通用函數,我可以通過任何枚舉來使用CheckedListBox
(獲取或設置值)。
public enum TypeFlags
{
None = 0x0,
//List of flag
}
private void makeFlagOrBitmask(CheckedListBox list, Type e)
{
int myFlags = 0x0;
//I want to achieve something like that
foreach (Object item in list.CheckedItems)
{
//(TypeFlags)Enum.Parse(typeof(TypeFlags), item);
//So e should be the enum himself, but i can't figure how to do that
myFlags += (int)((e)Enum.Parse(typeof(e), item.tostring()));
}
}
所以,我可以使用一個函數來製作/讀取任何標誌。
問題是,我不知道如何通過枚舉,因爲我需要在函數中。
出了什麼問題? – MasterXD
刪除typeof(e)並離開Enum.Parse(e ...因爲e已經是一個類型了嗎? – Andez
'typeof(e)'當'e'是'Type'就是給你'Type'的類型對象,而不是枚舉類型,你只需要將'e'傳遞給'Enum.Parse'。 – juharr