【问题标题】:Resharper expression is always falseResharper 表达式总是错误的
【发布时间】:2015-03-20 15:54:40
【问题描述】:

鉴于以下代码块..

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 告诉我第三行总是错误的。考虑到 Identity 是一个引用类型,Resharper 如何做出这样的保证?

【问题讨论】:

  • 我怀疑它有一些“保证”它的注释。请注意,在 C# 6 中,这可以重构为:return HttpContext.Current?.User?.Identity?.Name;

标签: c# resharper


【解决方案1】:

ReSharper 附带所谓的"External Annotations"

使用这些注释 R# 假定特定的属性/参数/ ...永远不能是null。 (在 Identity 属性上按 Crtl+Shift+F1 后,您应该会看到 [NotNull] 属性注释。)

但是:这个特定的注释似乎是一个错误(请参阅RSRP-398551)并且已经在当前版本的外部注释中修复。

【讨论】:

    猜你喜欢
    • 2011-07-30
    • 2018-07-24
    • 2011-07-01
    • 2011-09-20
    • 1970-01-01
    • 2015-12-14
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多