单语句条件 - 为什么模式不用于其他代码块?

Dav*_*ale 7 c#

只是想到我会看到有人能解释为什么Anders认为这是有效的......

if(...)
   //single statement
else
   ///single statement
Run Code Online (Sandbox Code Playgroud)

但这不是......

try
   //single statement
catch
   //single statement
Run Code Online (Sandbox Code Playgroud)

Fil*_*erg 7

要引用框架设计指南中关于"通用样式约定"的部分,请参阅大括号:

即使语言允许,也要避免省略大括号.大括号不应视为可选.即使对于单个语句块,您也应该使用大括号.这增加了代码的可读性和可维护性.

省略大括号可能是可以接受的情况非常有限,例如在现有的单行语句之后添加新语句是不可能或非常罕见的.例如,在语句后添加语句是没有意义的 throw:

if(someExpression) throw new ArgumentOutOfRangeExcetion(...);

该规则的另一个例外是case语句中的大括号.这些括号可以省略,因为casebreak语句表示块的开始和开始.

安德斯认为主观和议论是什么,这是建议.

您可能还想查看msdn上编码约定中有关支撑的部分.