Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单语句条件-为什么该模式不用于其他代码块?_C# - Fatal编程技术网

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

C# 单语句条件-为什么该模式不用于其他代码块?,c#,C#,我只是想看看是否有人能解释为什么安德斯认为这是有效的 if(...) //single statement else ///single statement 但这不是 try //single statement catch //single statement 可能是因为单语句条件在花括号语言中历史上是有效的,但其他模式则不然 由于这两个示例都会降低代码的可读性,因此没有充分的理由进一步引入单语句支持 如果您将单语句支持扩展到许多代码块,您很容易看到有人在编写完全不

我只是想看看是否有人能解释为什么安德斯认为这是有效的

if(...)
   //single statement
else
   ///single statement
但这不是

try
   //single statement
catch
   //single statement

可能是因为单语句条件在花括号语言中历史上是有效的,但其他模式则不然

由于这两个示例都会降低代码的可读性,因此没有充分的理由进一步引入单语句支持

如果您将单语句支持扩展到许多代码块,您很容易看到有人在编写完全不可读的代码。就我个人而言,我也会避免第一种情况。

在“常规样式约定”一节中引用关于大括号的内容:

避免省略大括号,即使语言允许。不应使用大括号 被认为是可选的。即使是 单语句块,您应该 使用大括号。这是增加代码 可读性和可维护性

有非常有限的情况下 省略大括号可能是可以接受的, 例如添加新语句时 在现有的singöe-line之后 声明要么是不可能的,要么是不可能的 非常罕见。例如,它是 在后面添加语句没有意义
throw
语句:

if(someExpression)抛出新
参数超出范围(…)

该规则的另一个例外是 case语句中的大括号。这些 大括号可以省略为
大小写
break
语句表示 开始和块的开始

安德斯认为的是主观的和有争议的,这就是建议


你可能还想看看《学究》中关于支撑的部分:它不是“一行”,而是“一句话”@Marc:我不认为这是学究式的区别。事实上,我怀疑这就是问题的真实答案。@Cody-好吧,你可以说在try中有一个陈述,在catch中有一个陈述。。。别误会我;我想要牙套;如果我们能摆脱单语句/复合语句的混乱局面,那岂不是太好了@戴维德。对我来说,不是。我发现像这样的单语句代码块同样可读——事实上,我发现它们更可读,因为它减少了代码中不必要的行数。当我想分离代码时,我会创建一些空白。