我创建了一个扩展方法以避免必须键入如下“if”之类的代码:
Guid? nullableGuid = something;
if (!nullableGuid.HasValue || nullableGuid == Guid.Empty)
{
// do stuff
}
else
{
// do other stuff
}
我的扩展方法是:
public static bool IsNullOrEmpty(this Guid? g)
{
return !g.HasValue || g.Value == Guid.Empty;
}
这很好,因为现在我的代码看起来更干净并且更易于阅读:
Guid? nullableGuid = something;
if (nullableGuid.IsNullOrEmpty())
{
// do stuff
}
else
{
// do other stuff
}
问题是,如果我尝试在 else 块中使用 Guid,现在 resharper 会抱怨。它没有意识到我在扩展方法中检查了 HasValue。当然,我可以用注释来抑制警告或更改 resharper 选项,但这些都不是好的选项。如果我必须在任何地方评论代码,它往往会破坏首先使代码更清晰的目的。如果我更改 resharper 选项,那将是疯狂的。
我想知道是否有更好的选择。有没有办法“告诉” resharper 它是“好的”,而不必在任何地方评论代码或禁用检查?