C# Resharper表达式总是错误的
给定以下代码块C# Resharper表达式总是错误的,c#,resharper,C#,Resharper,给定以下代码块 if (HttpContext.Current == null) return null; if (HttpContext.Current.User == null) return null; if (HttpContext.Current.User.Identity == null) return null; return HttpContext.Current.User.Identity.Name; Resharper告诉我第三行总是错的。考虑到身份是一种引用类型,Resh
if (HttpContext.Current == null) return null;
if (HttpContext.Current.User == null) return null;
if (HttpContext.Current.User.Identity == null) return null;
return HttpContext.Current.User.Identity.Name;
Resharper告诉我第三行总是错的。考虑到身份是一种引用类型,Resharper如何保证这一点?Resharper附带了所谓的 使用这些注释R#假设特定的属性/参数/。。。不能为
null
。(在按下Identity
属性上的Crtl+Shift+F1后,应该会看到[NotNull]
属性注释。)
但是:这个特定的注释似乎是一个bug(请参阅),并且在当前版本的外部注释中已经修复。我怀疑它有一些注释可以“保证”它。注意,在C#6中,这可以重构为:
返回HttpContext.Current?.User?.Identity?.Name代码>