在对其中一个项目进行代码检查时,我发现Resharper正在为类似于下面的代码块提供“条件表达式中的赋值”警告:
if (this.pnlSummary.Visible = isValid)
{
//do something
}
else
{
// do something
}
虽然我同意这在一定程度上损害了可读性..但除此之外我不认为就代码执行而言使用它有任何缺点。
有人可以建议在条件表达式中编写作业可能带来的后果吗?
基于此,我将指示开发人员避免编写此类代码。
对此的任何建议都将非常感激。
答案 0 :(得分:2)
一个优秀的程序员是编写代码的程序员,他的同事不会理解那些编写计算机理解代码的代码。
虽然我同意这在一定程度上损害了可读性。
你有。这绝对是阻止程序员编写这样的代码的好理由。 当你只用几次击键就可以编写更好的代码时,那么做一些有害的事情背后的原因是什么呢?
this.pnlSummary.Visible = isValid;
if (this.pnlSummary.Visible)
{
//do something
}
else
{
// do something
}
你知道吗?只是一些键和几个点。自动完成非常棒!
答案 1 :(得分:1)
我认为这会影响可读性但不是“我不知道代码是做什么的”,而是“它最有可能是分配 - 而不是比较错误,我会花一些时间来检查它”。像R#这样的静态代码分析工具也总是会给出误报。