为什么这在Java中有效,而在C#中无效?a.k.a.作用域在C#中是如何工作的
本文关键字:何工作 工作 作用域 有效 Java 而在 为什么 无效 | 更新日期: 2023-09-27 18:03:45
可能重复:
关于C#变量作用域与其他语言的问题
从这里开始,但这和我今天工作时遇到的问题是一样的。我不是C#程序员,我在学习。
Java:
class Test
{
double x;
void F(boolean b) {
x = 1.0;
if (b) {
int x = 1;
}
}
}
C#:
class Test
{
double x;
void F(bool b) {
x = 1.0;
if (b) {
int x = 1;//error
}
}
}
简短的版本是,在一个块中,一个变量名只能引用一个东西。
Eric Lippert写过关于这个主题的博客文章Simpe的名字并不那么简单,Scope vs Declaration Space vs Lifetime