enum Flags
{
Foo,
Bar
}
Run Code Online (Sandbox Code Playgroud)
是Flags.Foo.ToString()保证返回"富"?或者我必须使用Enum.GetName(...)?
Luc*_*ski 13
如果枚举值恰好与枚举项匹配,则为是.
但要注意这样的情况:
var test = (Flags)(-1);
// test.ToString() == "-1"
Run Code Online (Sandbox Code Playgroud)
如果该值与枚举项不匹配,则它将仅将基础值作为字符串返回.默认情况下,枚举的基础数据类型是int.
此外,如果您的枚举定义[Flags]如下:
[Flags]
enum Flags
{
Foo = 1,
Bar = 2
}
Run Code Online (Sandbox Code Playgroud)
然后ToString()可以返回以逗号分隔的标志列表:
var test = Flags.Foo | Flags.Bar;
// test.ToString() == "Foo, Bar"
Run Code Online (Sandbox Code Playgroud)
就像Orace在评论中指出的那样,如果值不明确,即如果多个枚举项可以匹配该值,则不应对将选择哪一个进行任何假设.
| 归档时间: |
|
| 查看次数: |
1401 次 |
| 最近记录: |