返回枚举值的文本(字符串值)

Ala*_*an2 0 c# enums

我有这个枚举:

public enum Lang
{
    English = 0,
    Romaji = 1,
    Kana = 2,
    Kanji = 3,
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以写:

var a = Lang.English
var b = a; 
Run Code Online (Sandbox Code Playgroud)

并设置b为等于0.但是b,"English"如果给出,我可以设置相同的任何方式a吗?

Chr*_*tos 5

本质上enum是一组命名常量.因此,不使用常量,而是使用它们的名称来使代码更具可读性.

b将等于命名常量Lang.English,它的类型不会是a,string但它会是Lang.所以施展b到一个int,你会得到0.

但有没有办法,如果给出一个,我可以设b等于"英语"?

是的,您可以尝试以下方法:

string b = Enum.GetName(typeof(Lang),Lang.English);
Run Code Online (Sandbox Code Playgroud)

有关演示,请在此处查看