【发布时间】:2010-11-28 05:58:57
【问题描述】:
这行得通:
class MyClass
{
int a;
public MyClass()
{
int b = a;
}
}
但这会导致编译器错误(“使用未分配的局部变量'a'”):
class MyClass
{
public MyClass()
{
int a;
int b = a;
}
}
据我所知,这是因为在第一个示例中,从技术上讲,编译器不知道没有分配“a”。在后一个示例中,“a”是在本地定义的,因此很容易跟踪。
但为什么后一个例子不起作用?
整数不是默认为0吗?这是编译器为“最佳实践”而强制执行的。还是有其他原因?
【问题讨论】:
标签: c# initialization default int default-value