枚举TryParse与基类限定符

Tom*_*tom 2 c# resharper

我有一个枚举(让我们说DemoEnum),我想解析这个枚举的值.我在写信

DemoEnum value;
if(DemoEnum.TryParse("input", out value))
{
   this.Value = value;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Jus*_*ner 5

通常,最好使用最通用的解决方案.

DemoEnum.TryParse("input", out value)
Run Code Online (Sandbox Code Playgroud)

是同一个调用(你只是从一个继承的类而不是基类进行静态调用):

Enum.TryParse<DemoEnum>("input", out value)
Run Code Online (Sandbox Code Playgroud)

使用基类限定符(Enum)而不是特定的枚举(DemoEnum)可以使您免受DemoEnum将来可能出现的更改的副作用.实际情况是,如果您在不更改名称的情况下将DemoEnum更改为类,那么您真的只会遇到问题.

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