首先声明一下,我以前没用过C#,对它了解不多。
我正在学习 Sebesta 的《编程语言概念第 9 版》一书,准备“编程语言”考试。当我读到以下摘录自“范围声明顺序(第246页)”时,我有点困惑:
“...例如,在 C99、C++、Java 中,所有局部变量的范围是从它们的声明到这些声明出现的块的末尾。但是,在 C# 中,块中声明的任何变量的作用域都是整个块,无论声明在块中的位置如何,只要它不在嵌套块中即可。对于方法来说也是如此。请注意,C# 仍然要求所有变量在使用之前进行声明。因此,虽然变量的作用域从声明延伸到该声明出现的块或子程序的顶部,但该变量仍然不能在其声明之上使用"
为什么 C# 的设计者做出这样的决定?这种不寻常的决定有什么具体的原因/优势吗?
这会阻止您执行以下操作
void Blah()
{
for (int i = 0; i < 10; i++)
{
// do something
}
int i = 42;
}
原因是,例如,如果您必须移动代码,则可能会出现细微的错误。如果你需要i
在你的循环之前,现在你的循环被打破了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)