![]() |
1
31
正如其他人所说,你必须实现你自己的
如果使用位域枚举(即标志),还必须处理类似
更新
正如丽莎和克里斯蒂安在评论中提到的,
|
![]() |
2
98
Enum.IsDefined将完成任务。它的效率可能不如胰蛋白酶的效率,但它将毫无例外地发挥作用。
值得注意的:A
|
![]() |
3
19
以下是的自定义实现
|
![]() |
4
16
最后你必须围绕
附加说明:
编辑:刚刚看到一个更好的实现,它缓存了必要的信息: http://damieng.com/blog/2010/10/17/enums-better-syntax-improved-performance-and-tryparse-in-net-3-5 |
![]() |
5
8
基于.NET 4.5 下面的示例代码
|
![]() |
6
4
我有一个优化的实现,您可以在 UnconstrainedMelody . 实际上,它只是缓存名称列表,但它是以一种良好的、强类型的、一般约束的方式来实现的:) |
![]() |
7
3
…
|
![]() |
8
2
当前没有现成的enum.typarse。连接时已请求( Still no Enum.TryParse )并得到一个响应,指示可能包含在.NET 3.5之后的下一个框架中。您现在必须实施建议的解决方法。 |
![]() |
9
1
避免异常处理的唯一方法是使用getNames()方法,我们都知道对于公共应用程序逻辑,不应该滥用异常:) |
![]() |
10
1
是否允许缓存动态生成的函数/字典? 因为您似乎事先不知道枚举的类型,所以第一次执行可能会生成一些后续执行可以利用的东西。 甚至可以缓存Enum.GetNames()的结果。 您是否正在尝试针对CPU或内存进行优化?你…吗 真的? 需要? |
![]() |
11
0
正如其他人已经说过的,如果不使用Try&Catch,则需要使用IsDefined或GetNames… 这里有一些示例……它们基本上都是相同的,第一个处理可以为空的枚举。我更喜欢第二个,因为它是字符串的扩展,而不是枚举……但您可以根据需要混合它们!
|
![]() |
12
0
没有台盼,因为枚举的类型在运行时之前未知。如果一个typarse遵循与上述date.typarse方法相同的方法,则会在byref参数上引发一个隐式转换错误。 我建议这样做:
|
![]() |
13
-1
查看枚举类(结构?)本身。这上面有一个解析方法,但我不确定是什么样的。 |
![]() |
14
-2
此方法将转换枚举类型:
它检查底层类型,并根据它获取要分析的名称。如果一切都失败,它将返回默认值。 |
![]() |
H.v.M. · 为最后一个枚举值指定不同的变量值 2 年前 |
|
JimmyDiJim · 在声明后定义枚举变量 6 年前 |
![]() |
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 6 年前 |
![]() |
Vivek Shukla · 在中间添加枚举 6 年前 |
![]() |
DannyD · 如何访问typescript中的枚举名称 6 年前 |