如何在枚举类型中设置间隔

20 浏览
0 Comments

如何在枚举类型中设置间隔

我想在我的枚举类型中设置空格。以下是我的代码示例:

public enum category
{
    goodBoy=1,
    BadBoy
}

我想设置为

public enum category
{
    Good Boy=1,
    Bad Boy  
}

当我检索时,我希望从枚举中看到Good Boy的结果。

0
0 Comments

问题的原因是许多人仍然在处理枚举时遇到问题。为了解决这个问题,根据Smac的建议,我添加了一个扩展方法,以便更加方便。我使用了注解和一个辅助的扩展方法。

首先,定义了一个枚举TravelClass,其中包含了两个枚举值:EconomyWithRestrictions和EconomyWithoutRestrictions。每个枚举值都使用了Description属性进行注解,分别为"Economy With Restrictions"和"Economy Without Restrictions"。

接下来,定义了一个静态类Extensions,其中包含了一个扩展方法ToDescription,用于将枚举值转换为对应的描述字符串。在该方法中,首先通过反射获取枚举值对应的字段,然后使用Attribute.GetCustomAttribute方法获取该字段上的DescriptionAttribute注解,最后返回注解的Description属性值。如果没有找到DescriptionAttribute注解,则返回枚举值的字符串表示。

最后,给出了一个使用枚举的示例。在示例中,将TravelClass.EconomyWithRestrictions赋值给枚举变量enumValue,然后调用ToDescription方法将其转换为描述字符串,将结果赋值给字符串变量stringValue。结果将返回"Economy With Restrictions"。

希望这个完整的示例对大家有所帮助。再次感谢Smac提出的建议,我只是通过添加扩展方法来完善它。

0
0 Comments

枚举(Enum)是用于编程目的的,实质上是给一个数字起了一个名字。这对程序员在阅读源代码时很有帮助。

status = StatusLevel.CRITICAL; // 这种写法更容易阅读...
status = 5;                    // ...比这种写法

枚举不是用于显示的,不应该展示给最终用户。与任何其他变量一样,枚举名称中不能使用空格。

要将内部值与用户可以显示的“漂亮”标签关联起来,可以使用字典或哈希表。

myDict["Bad Boy"] = "joe blow";

在我定义的枚举“Good_Boy”中,我想在控件上用空格替换下划线,应该如何做?

不要在用户可以看到的地方使用枚举名称。正如之前所说,请使用字典。这就是它们的用途。枚举用于编程级别的统一,而不是用户显示!

事实上,下拉框的数据源通常不是在数据库中定义的,而是来自枚举。我不确定这是否是一件坏事。

0
0 Comments

如何在枚举中设置空格的问题是由于在UI框架中使用枚举时,希望能够通过DataAnnotations为枚举值设置空格的显示名称。解决方法是使用DataAnnotations特性来装饰枚举值,并通过自定义的扩展方法将枚举值和显示名称以字典的形式返回。

在上述代码中,我们可以看到在枚举类型Boys中,使用了Display特性来为GoodBoy和BadBoy设置了显示名称。这样在UI框架中使用HTML.LabelFor时,可以读取DataAnnotations特性,并显示出设置的名称。

为了在代码中获取枚举值和显示名称,我们可以使用一个名为EnumExtention的扩展方法。这个方法会接收一个Enum类型的参数,并通过反射获取枚举类型的字段,筛选出带有Display特性的字段,并获取其名称。然后通过Enum.GetValues方法获取枚举值,最后使用Zip方法将名称和值一一对应,并以字典的形式返回。

使用这个扩展方法时,只需要调用Boys.GoodBoy.ToDictionary()即可获取包含了枚举值和显示名称的字典。

需要注意的是,在使用DataAnnotations特性时,需要引用System.ComponentModel.DataAnnotations命名空间。

总结起来,当在使用UI框架中的枚举时,希望能够为枚举值设置显示名称时,可以通过DataAnnotations特性和自定义的扩展方法来实现。

0