如何创建具有空值的枚举
例如:
public enum MyEnum
{
[StringValue("X")]
MyX,
[StringValue("Y")]
MyY,
None
}
Run Code Online (Sandbox Code Playgroud)
其中None值为null或String.Empty
Rah*_*thi 18
你可以尝试这样的事情: -
public MyEnum? value= null;
Run Code Online (Sandbox Code Playgroud)
或者你可以尝试这个: -
public MyEnum value= MyEnum.None;
Run Code Online (Sandbox Code Playgroud)
正如所有其他答案所述,您不能将枚举值设为null.你可以做的是添加一个具有空值的Description属性(如你的StringValue).
例如:
public enum MyEnum
{
[Description(null)]
None = 0,
[Description("X")]
MyX,
[Description("Y")]
MyY
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下函数获取Enum的描述:
public static string GetEnumDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute),
false);
if (attributes != null && attributes.Length > 0)
return attributes[0].Description;
else
return value.ToString();
}
Run Code Online (Sandbox Code Playgroud)
用法:
MyEnum e = MyEnum.None;
string s2 = GetEnumDescription((MyEnum)e); // This returns null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25556 次 |
| 最近记录: |