【发布时间】:2010-06-04 18:09:59
【问题描述】:
首先,我说我之前没用过C#,也不是很了解。
我正在为我的“编程语言”考试学习 Sebesta 的“编程语言概念第 9 版”一书。看了下面这段摘自“范围声明顺序(第246页)”后,我有点疑惑:
"...例如,在 C99、C++、Java 中,所有局部变量的范围是从它们的声明到出现这些声明的块的末尾。但是,在 C# 中,任何变量的范围在块中声明的就是整个块,不管声明在块中的位置,只要它不在嵌套块中。对于方法也是如此。注意,C#仍然需要所有变量在使用前都要声明。因此,尽管变量的范围从声明延伸到出现该声明的块或子程序的顶部,但该变量仍然不能在其声明之上使用"
为什么 C# 的设计者会做出这样的决定?这种不寻常的决定是否有任何具体原因/优势?
【问题讨论】:
-
那是非常微不足道的。它几乎无法改变程序或应用程序的结果。
-
@Khnle:然而,乍一看,这似乎是一种任意矛盾的做事方式。我认为这个问题没有任何问题。
-
@Khnle,我不同意。它在编译时产生了巨大的(主要是积极的)影响,请参阅示例的答案。了解此功能存在的原因可以深入了解 C# 的设计思想。