public void Get_取得できるその1() { // Arrange // Act var attribute = EnumAttributeCache <Fruit, DisplayAttribute> .Get(Fruit.None); // Assert Assert.Null(attribute); }
public void Get_取得できるその2() { // Arrange // Act // Fruitの属性が遅延実行でキャッシュされる var attribute1 = EnumAttributeCache <Fruit, DisplayAttribute> .Get(Fruit.Apple); var attribute2 = EnumAttributeCache <Fruit, DisplayAttribute> .Get(Fruit.Banana); // Vegetableの属性が遅延実行でキャッシュされる var attribute3 = EnumAttributeCache <Vegetable, DisplayAttribute> .Get(Vegetable.Onion); var attribute4 = EnumAttributeCache <Vegetable, DisplayAttribute> .Get(Vegetable.Carrot); // Assert Assert.Equal("りんご", attribute1.Name); Assert.Equal("バナナ", attribute2.Name); Assert.Equal("たまねぎ", attribute3.Name); Assert.Equal("にんじん", attribute4.Name); }
// 表示名を取得 public static string DisplayName <TEnum>(this TEnum value) where TEnum : Enum => EnumAttributeCache <TEnum, DisplayAttribute> .Get(value)?.Name;