条件表达式中的赋值 - 这样做的潜在代码质量后果是什么

本文关键字:代码 后果 是什么 这样做 表达式 赋值 条件 | 更新日期: 2023-09-27 17:55:09

在对其中一个项目进行代码检查时,我发现Resharper对类似于以下内容的代码块发出"条件表达式中的赋值"警告:

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

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

谁能建议一下在条件表达式中编写作业的潜在后果是什么?

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

对此的任何建议将不胜感激。

条件表达式中的赋值 - 这样做的潜在代码质量后果是什么

一个好的程序员是一个程序员,他写的代码是他的同事理解的,而不是写计算机理解的代码的人。

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

你在这儿。这绝对是阻止程序员编写此类代码的一个很好的理由。此外,当您只需几次击键即可编写更好的代码时,那么做一些有害事情背后的原因是什么?

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

你看?只是一些键和几个点。自动完成很棒!

我认为它损害了可读性,但不是在某种程度上"我想知道该代码是做什么的?",而是"这很可能是赋值而不是比较错误,我会花一些时间来检查它"。像 R# 这样的静态代码分析工具也总是会给出误报。