如何使用 ?枚举中的字符

1 c#

我在C#,Visual Studio '05工作......在我的枚举中,我该如何使用这个'?'角色?我的枚举如下:

public enum Questions
{
    How_old_are_you?_= 0,//How to set the ? character 
    What_is_your_name= 1
}
Run Code Online (Sandbox Code Playgroud)

添加'?'角色后会出现一些错误.

Jon*_*eet 13

?不是C#标识符中的有效字符(包括枚举值).我强烈建议你使用类似的东西:

public enum Question
{
    [Description("How old are you?")]
    Age,

    [Description("What is your name?")]
    Name
}
Run Code Online (Sandbox Code Playgroud)

或者有地图或资源文件等 - 只是不要试图将枚举的名称变成自然语言描述.

编辑:作为参考,如果你想得到Description代码,这里是如何做到的(感谢Christian Hayter):

((DescriptionAttribute) Attribute.GetCustomAttribute(
    typeof(Question).GetField("Age", BindingFlags.Public | BindingFlags.Static), 
        typeof(DescriptionAttribute), false)
).Description;
Run Code Online (Sandbox Code Playgroud)

  • ((DescriptionAttribute) Attribute.GetCustomAttribute(typeof(Question).GetField("Age", BindingFlags.Public | BindingFlags.Static), typeof(DescriptionAttribute), false)).Description (4认同)