如果枚举已经用属性装饰,它看起来Enum.GetName()
不起作用。[Flags]
该文档未指定与此限制相关的任何内容。
我注意到调试器能够显示类似Tree | 水果。有没有办法检索描述组合标志的文本字符串?
以下代码显示Red
。
public enum FavoriteColor
{
Red,
Blue,
WeirdBrownish,
YouDoNotEvenWantToKnow,
}
var color = FavoriteColor.Red;
Console.WriteLine(Enum.GetName(typeof(FavoriteColor), color)); // => "Red"
而这个不输出任何东西....
[Flags]
public enum ACherryIsA
{
Tree = 1,
Fruit = 2,
SorryWhatWasTheQuestionAgain = 4,
}
var twoOfThree = ACherryIsA.Fruit | ACherryIsA.Tree;
Console.WriteLine(Enum.GetName(typeof(ACherryIsA), twoOfThree)); // => ""