我查过了(可能还不够),但找不到答案。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