![]() |
1
443
这应该能满足你的需要。
|
![]() |
2
237
这段代码应该为您提供一个很好的任何枚举的小扩展方法,让您检索一个通用属性。我相信它不同于上面的lambda函数,因为它使用起来更简单,而且稍微有点——您只需要传入泛型类型。
|
![]() |
3
77
这是使用lambda进行选择的通用实现
这样称呼它:
|
![]() |
4
50
我在这里合并了几个答案,以创建一个更具扩展性的解决方案。我提供它只是为了将来对任何人都有帮助。原始过账 here .
此解决方案在枚举上创建一对扩展方法。第一种方法允许您使用反射来检索与您的值相关联的任何属性。第二个调用专门检索
例如,考虑使用
要使用上述扩展方法,现在只需调用以下内容:
或
|
![]() |
5
37
除了 AdamCrawford response ,我还创建了一个更专门的扩展方法,提供它来获取描述。
因此,要获取描述,可以使用原始扩展方法作为
或者您可以在这里简单地调用扩展方法,如下所示:
希望能让代码更可读。 |
![]() |
6
12
流畅的一行…
这里我用的是
例子
产量
|
![]() |
7
7
下面是从显示属性获取信息的代码。它使用一个通用方法来检索属性。如果找不到属性,则将枚举值转换为字符串,并将pascal/camel大小写转换为标题大小写(获取的代码 here )
这是字符串转换为标题大小写的扩展方法:
|
![]() |
8
4
从枚举获取字典。
现在这样称呼…
EnumDeccription Ext方法
|
![]() |
9
3
我实现了这个扩展方法来从枚举值中获取描述。它适用于所有类型的枚举。
|
![]() |
10
3
这是AdamCrawford答案的.NET核心版本,使用 System.Reflection.TypeExtensions ;
|
![]() |
11
3
添加我的网络框架和网络核心解决方案。 我将其用于我的网络框架实现:
这对NetCore不起作用,因此我将其修改为:
枚举示例:
静态添加的示例用法:
|
![]() |
12
2
利用一些较新的C语言功能,您可以减少行数:
|
![]() |
13
1
此扩展方法将使用其xmlenumattribute获取枚举值的字符串表示形式。如果不存在xmlenumattribute,则返回到enum.toString()。
|
![]() |
14
1
如果你想要完整的名单,你可以这样做
|
![]() |
15
1
我这个答案是从一个枚举属性中设置一个组合框,这很好。 然后我需要对相反的代码进行编码,以便从框中获得所选内容并返回正确类型的枚举。 我还修改了代码来处理属性丢失的情况。 为了下一个人的利益,这是我的最终解决方案
} |
![]() |
16
0
伙计们,如果有帮助的话,我会和你们分享我的解决方案: 自定义属性定义:
现在,因为我在htmlhelper扩展的htmlhelper定义中需要它:
希望有帮助 |
![]() |
17
0
在这种情况下,它将产生错误1“等于”
因此,如果它是相同的,则返回枚举名称而不是显示名称,因为 EnumMember.getCustomAttribute()。 如果DisplayName和枚举名称相同,则获取空….. |
![]() |
18
-1
或者,您可以执行以下操作:
并获得以下描述:
在我看来,这是一种更有效的方式来做你想做的事情,因为不需要反思。 |
![]() |
19
-4
还可以定义枚举值,如
|
![]() |
H.v.M. · 为最后一个枚举值指定不同的变量值 3 年前 |
|
JimmyDiJim · 在声明后定义枚举变量 7 年前 |
![]() |
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 7 年前 |
![]() |
Vivek Shukla · 在中间添加枚举 7 年前 |
![]() |
DannyD · 如何访问typescript中的枚举名称 7 年前 |