我喜欢 Resharper,但有时它会给出不正确的警告,可能是因为 BCL 类型的内置注释是错误的。例如,在这段代码中:
private static string GetDescription(T value)
{
Type type = typeof(T);
string name = Enum.GetName(type, value);
if (name != null)
{
...
它给了我一个关于if
声明的警告:“表达总是正确的”。但Enum.GetName
可以返回 null:
string name = Enum.GetName(typeof(DayOfWeek), (DayOfWeek)42); // null
我认为这是因为[NotNull]
有Enum.GetName
. 有没有办法解决这个问题,所以我没有收到警告?
注意:我使用的是 Resharper 5.1;也许这个问题在版本 6 中已修复,但我现在不愿意升级。