簡體   English   中英

C#中枚舉值名稱的別名

[英]Alias for enum value name in C#

我可以在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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM