C# C中枚举值名称的别名#

C# 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

我可以在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.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中使用它。作为示例,您可能最终描述了感谢,这就是我所需要的。