这有效:
class MyClass
{
int a;
public MyClass()
{
int b = a;
}
}
但这会产生编译器错误(“使用未分配的局部变量'a'”):
class MyClass
{
public MyClass()
{
int a;
int b = a;
}
}
据我所知,这是因为在第一个示例中,从技术上讲,编译器不知道没有分配“a”。在后一个示例中,“a”是在本地定义的,因此很容易跟踪。
但是为什么后一个例子不起作用?
整数不是默认为0吗?这是编译器为“最佳实践”而强制执行的。还是另有原因?