gpt4 book ai didi

c# - 没有语法意义的代码块

转载 作者:行者123 更新时间:2023-11-30 16:10:21 25 4
gpt4 key购买 nike

有时我看到类似下面的代码,但实际上并不知道它的含义:

void myFunc() {
MyClass a = new MyClass();

{
if (a.b == null) // doSomething
}
}

我真的很喜欢这种代码排序和封装(不仅因为如果你不阅读它的内容,你可能会立即折叠整个 block ),但我想知道它是否除了光学之外还有任何句法意义缩进。 Ofc。我知道,就像在每个代码块中一样, block 中声明的任何变量只能在那里使用,但是否还有更多。也有对象初始化器,但由于那些关注类的实际实例,所以上面是一个完全独立的 block 。

最佳答案

I wonder if it has any syntactic meaning additional to just the optical indentation

不,它们没有什么特别之处。 C# 语言将 block 声明为封装可选语句列表的一对大括号,并观察到这允许在允许单个语句的地方编写多个语句。

这反过来又简化了语言规范的其他部分,例如 iffor 等,然后就可以像只遵循它们一样进行指定通过一个单一的声明。

事实上,这意味着您也可以在其他任何地方使用它们,这在很大程度上是一个幸运的意外。

您可以在 C# language spec 的第 8.2 节中阅读它们的完整规范

关于c# - 没有语法意义的代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com