当表达式太长,无法放入显示区域或为了源代码整洁时,我们将多行编写长表达式。我试图检查相关的编程规则,但我找不到一些关于符号应该放在行尾或下一行第一行的相关内容。
例如 C# 代码中的长 IF 表达式,
if (!double.TryParse(text4Hours.Text, out outputValue)||
!double.TryParse(text4Hours.Text, out outputValue)||
!double.TryParse(text10Hours.Text, out outputValue)){ }
或
if (!double.TryParse(text4Hours.Text, out outputValue)
||!double.TryParse(text4Hours.Text, out outputValue)
||!double.TryParse(text10Hours.Text, out outputValue)){ }
平行符号||可以放在行尾或下一行的第一行,任何规则规定我们必须遵循第一行或第二行?这样做有什么好处?
另一个例子是
answer = amount4Hours * double.Parse(text4Hours.Text) +
amount8Hours * double.Parse(text8Hours.Text) -
break45 * double.Parse(text8Hours.Text) +
amount10Hours * double.Parse(text10Hours.Text) -
break45 * double.Parse(text10Hours.Text);
或
answer = amount4Hours * double.Parse(text4Hours.Text)
+amount8Hours * double.Parse(text8Hours.Text)
-break45 * double.Parse(text8Hours.Text)
+amount10Hours * double.Parse(text10Hours.Text)
-break45 * double.Parse(text10Hours.Text);
我知道我们应该尽量避免有长表达式,但如果考虑到文本编辑器显示区域小或其他问题的原因,那么这个问题仍然会弹出。谢谢。
这个问题的任何答案都是基于意见的,但我也相信大多数人更喜欢第一种方法。想象一下:
if (expression1 &&
expression243787 &&
expression3 &&
expression938533485934 &&
expression7247)
现在想象一下,你在代码上发现了一个错误,并意识到逻辑错误在这个表达式中,所有&&&运算符都应该是||。这可能只是一种意见,但我确实认为,如果代码是这样的,修复它会容易得多:
if (expression1
&& expression243787
&& expression3
&& expression938533485934
&& expression7247)
这只是一个例子,说明了为什么我认为这种做法使代码重构更容易,除了其他好处,如可读性。
将符号放在下一行的开头将更容易显示符号。 如果在上一行的末尾,则符号序列更难遵循。