条件表达式中的赋值 - 这可能导致代码质量的后果是什么?

时间:2015-06-10 06:07:58

标签: c# .net resharper conditional-statements

在对其中一个项目进行代码检查时,我发现Resharper正在为类似于下面的代码块提供“条件表达式中的赋值”警告:

if (this.pnlSummary.Visible = isValid)
{
    //do something
}
else
{
    // do something
}

虽然我同意这在一定程度上损害了可读性..但除此之外我不认为就代码执行而言使用它有任何缺点。

有人可以建议在条件表达式中编写作业可能带来的后果吗?

基于此,我将指示开发人员避免编写此类代码。

对此的任何建议都将非常感激。

2 个答案:

答案 0 :(得分:2)

一个优秀的程序员是编写代码的程序员,他的同事不会理解那些编写计算机理解代码的代码。

  

虽然我同意这在一定程度上损害了可读性。

你有。这绝对是阻止程序员编写这样的代码的好理由。 当你只用几次击键就可以编写更好的代码时,那么做一些有害的事情背后的原因是什么呢?

this.pnlSummary.Visible = isValid;
if (this.pnlSummary.Visible)
{
    //do something
}
else
{ 
   // do something
}
你知道吗?只是一些键和几个点。自动完成非常棒!

答案 1 :(得分:1)

我认为这会影响可读性但不是“我不知道代码是做什么的”,而是“它最有可能是分配 - 而不是比较错误,我会花一些时间来检查它”。像R#这样的静态代码分析工具也总是会给出误报。