当前位置:  开发笔记 > 编程语言 > 正文

Resharper的代码建议使代码可读性降低?

如何解决《Resharper的代码建议使代码可读性降低?》经验,为你挑选了5个好方法。

在试图获得所有绿色时,我得到了Resharper的以下建议.

原始代码:

    static public string ToNonNullString(this XmlAttribute attr)
    {
        if (attr != null)
            return attr.Value;
        else
            return string.Empty;
    }

建议:删除多余的"其他",导致以下内容:

    static public string ToNonNullString(this XmlAttribute attr)
    {
        if (attr != null)
            return attr.Value;
        return string.Empty;
    }

对我来说,建议的版本似乎不如原始版本可读.Resharper建议是否反映了良好可维护代码的定义?



1> tddmonkey..:

技术上的Resharper是正确的,因为"else"是不必要的,我更喜欢前一版本,因为意图更明显.

话虽如此,我宁愿选择:

return attr != null ? attr.Value : string.Empty;


+1,是的,我发现它更具可读性 - 为什么人们如此害怕条件运算符?
三元运算符的可读性呃?*关键的vulcan眉毛提升*
因为我必须寻找操作符号以查看不同部分是什么.
为了提高较长行的可读性(你可能不会将其识别为三元组,我通常在?和:字符之前添加换行符,因此每个替代结果都在它自己的行上,它仍然小而紧凑,同时也非常易读.
对于这些类型的条件,我发现三元运算符比if-else更具可读性.

2> Jeffrey Hant..:

啊,代码美学.圣战时间.(鸭)

我会选择?:表达式:

return attr != null ? attr.Value : String.Empty

或者反转if并删除换行符以产生一个保护条款:

if (attr == null) return String.Empty;

return attr.Value;


是的,这正是后卫条款的好处.

3> Andrey Shche..:

我认为如果你反转if,新版本要好得多

static public string ToNonNullString(this XmlAttribute attr)
{
    if (attr == null)
        return string.Empty;

    return attr.Value;
}

因为您的原始版本太对称,而null-case是一种特殊情况.

新版本在"大部分时间返回的内容"方面更具可读性.



4> cbp..:

我同意您的代码的第一个版本更具可读性.

我发现在这些情况下Resharper的建议并不总是有用,尽管有时它可以清理.这就是为什么我配置Resharper将变化显示为"提示"而不是"建议".这会导致绿色下划线不太明显,并且不会在右侧边栏中突出显示.


+1表示将检查降级为暗示.我认为在这种情况下,保护条款是可取的,但有时候我更愿意为了对称而单独留下多余的"其他".

5> petr k...:

如果你不喜欢ReSharper建议的方式,只需禁用特定的建议(斜线警告斜线提示).编码风格也是如此,我认为编码风格具有很高的可配置性.声称ReSharper无法使用(引用"我很高兴地说它没有生存,这里没有人再使用它了")只是因为你不花5分钟才知道如何配置它只是简单的愚蠢.

当然你不应该让某些工具决定你的编码风格的某些部分,而ReSharper如果你告诉它不要这样做.就这么简单.


但是在我的代码中使用这些注释// ReSharper禁用InconsistentNaming等会影响可读性
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有