Tag: default default

为什么我必须在默认为0时为C#中的int赋值?

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