This works:
class MyClass
{
int a;
public MyClass()
{
int b = a;
}
}
But this gives a compiler error ("Use of unassigned local variable 'a'"):
class MyClass
{
public MyClass()
{
int a;
int b = a;
}
}
As far as I can tell this happens because in the first example, technically, the compiler doesn't know that 'a' is not assigned. In the latter example, 'a' is defined locally, and therefore is easy to track.
But why does the latter example not work?
Don't integers default to 0? Is this something the compiler enforces for "best practices". Or is there another reason?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…