【Resharper】C# “Simplify conditional ternary expression”

#事故现场:

  对某个对象作空值检测的时候,结合三元运算符给某变量赋值的时候,R#提示:"Simplify conditional ternary expression" ;express

  R#建议对该种写法进行简写优化;优化

#解决方案:

  咱们能够按住 Alt+Enter ,接受R#的建议,则代码优化以下:spa

bool isFuzzySearch = context.Request["IsFuzzySearch"] != null && bool.Parse(context.Request["IsFuzzySearch"]);

  优化后的代码中,一样存在空值检测,只不过使用 != ,同时三元运算符改成了 && ,也就是说只有当 context.Request["IsFuzzySearch"] != null  为真的时候,才会执行 bool.Parse(context.Request["IsFuzzySearch"]),最终结果一样知足了业务逻辑;3d

  优化后的代码在语义上和优化前的代码是等价的,R#一般更喜欢更简洁的方式,特别是,条件中使用"true" 和"false",R#会认为其是冗余代码的标记;code

 

#参考:对象

https://stackoverflow.com/questions/14621907/simplify-conditional-ternary-expressionblog

——————————————————————————————————————————get

相关文章
相关标签/搜索