C# C中枚举值名称的别名#
我可以在C#中为枚举值名称创建别名吗? 例如,我有两个文件:A和BC# C中枚举值名称的别名#,c#,enums,C#,Enums,我可以在C#中为枚举值名称创建别名吗? 例如,我有两个文件:A和B public class A { public enum myEnum { value_1, value_2 }; } 我想在B类中使用这个枚举: public class B { private A.myEnum[] tab = { A.myEnum.value_1, A.myEnum.value_2, A.myEnum.valu
public class A
{
public enum myEnum
{
value_1,
value_2
};
}
我想在B类中使用这个枚举:
public class B
{
private A.myEnum[] tab = { A.myEnum.value_1, A.myEnum.value_2, A.myEnum.value_1 ..}
}
我要为以下对象创建别名:
A.myEnum.value_1和A.myEnum.value_2
这样我就可以写作了
private A.myEnum[] tab = { alias_1, alias_2},
我想我可能遗漏了什么,但是:
public class B
{
private const A.myEnum alias_1 = A.myEnum.value_1;
private const A.myEnum alias_2 = A.myEnum.value_2;
private A.myEnum[] tab = {alias_1, alias_2};
}
使用助手方法,如
public static myEnum GetEnumName(string str)
{
switch(str)
{
case "alias_1": return myEnum.Value_1;
case "alias_2": return myEnum.Value_2;
default: throw new Exception();
}
}
您只需获取所有值并将其转换为数组:
myEnum[] tab = Enum.GetValues(typeof(myEnum)).Cast<myEnum>().ToArray();
myEnum[]tab=Enum.GetValues(typeof(myEnum)).Cast().ToArray();
为什么不将枚举拉到A类之外?这样就不必使用类名了。使用枚举名并对其进行黑客攻击是正常的,因此您没有枚举名可能会使代码混淆。因为我需要在类中使用此枚举。再加上它唯一的例子为什么你需要在一个?如果您将其公开并将其放在同一名称空间中,您仍然可以在A中使用它。作为示例,您可能最终描述了感谢,这就是我所需要的。