c# - 带有基类限定符的枚举 TryParse

标签 c# resharper

我有一个枚举(假设是 DemoEnum),我想解析该枚举的值。我正在写

DemoEnum value;
if(DemoEnum.TryParse("input", out value))
{
   this.Value = value;
}

现在 resharper 建议我使用基类限定符。

我只是想知道使用基类限定符有什么好处?

最佳答案

通常,最好使用尽可能通用的解决方案。

DemoEnum.TryParse("input", out value)

与以下调用相同(您只是从继承类而不是基类进行静态调用):

Enum.TryParse<DemoEnum>("input", out value)

使用基类限定符 (Enum) 而不是特定枚举 (DemoEnum) 将使您免受更改 DemoEnum 可能产生的副作用将来。现实情况是,如果将 DemoEnum 更改为类而不更改名称,您实际上只会遇到问题。

使用类时,这通常是一个更大的问题(ReSharper 在这些情况下会提供相同的指导)。

关于c# - 带有基类限定符的枚举 TryParse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384654/

相关文章:

c# - Ajax 控制工具套件时区问题

c# - WMI:远程编辑注册表

c# - AutoMapper - 在 View 模型中映射子集合

c# - AggressiveInlined 影响 C# 异步方法行为

unit-testing - 在 VS 中为 typescript 运行单元测试

c# - 如何处理冲突的编码约定?

c# - 是否可以在 SqlConnection 中使用 EF4 EntityConnection?

RazorGenerator.MsBuild - 实现从开发人员机器到 Buildserver 的和谐

.net - Visual Studio 2012 和 Resharper 的 goto 实现

c# - 泛型参数什么时候不能为 null