Похоже, Enum.GetName()
не работает, если перечисление было украшено атрибутом [Flags]
.
Документацияне определяет ничего, связанного с этим ограничением.
Я заметил, что отладчик может отображать что-то вроде Дерево | Фрукты. Есть ли способ получить текстовую строку, описывающую комбинированные флаги?
Отображение следующего кода Красный
.
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)); // => ""