单语句条件 – 为什么模式不用于其他代码块?
只是想到我会看到有人能解释为什么Anders认为这是有效的……
if(...) //single statement else ///single statement
但这不是……
try //single statement catch //single statement
要引用框架设计指南中关于“通用样式约定”的部分,请参阅大括号:
即使语言允许,也要避免省略大括号。 大括号不应视为可选。 即使对于单个语句块,也应该使用大括号。 这增加了代码的可读性和可维护性。
省略大括号可能是可以接受的情况非常有限,例如在现有的单行语句之后添加新语句是不可能或非常罕见的。 例如,在
throw
语句之后添加语句是没有意义的:
if(someExpression) throw new ArgumentOutOfRangeExcetion(...);
该规则的另一个例外是case语句中的大括号。 这些大括号可以省略,因为
case
和break
语句表示块的开始和开始。
安德斯认为主观和议论是什么,这是建议。
您可能还想查看msdn上编码约定中有关支撑的部分。
可能是因为单个语句条件在大括号语言中历史上有效,但其他模式则不然。
由于任何一个示例都使代码的可读性降低,因此没有充分的理由引入单个语句支持,而不是历史上必要的。
如果您对大量代码块的扩展单语句支持进行映像,则可以很容易地看到某人编写完全无法读取的代码。 我个人也会避免第一个案例。