局部变量未初始化。您必须手动初始化它们。
成员 被初始化,例如:
public class X
{
private int _tmpCnt; // This WILL initialize to zero
...
}
但是局部变量不是:
public static void SomeMethod()
{
int tmpCnt; // This is not initialized and must be assigned before used.
...
}
因此,您的代码必须是:
int tmpCnt = 0;
if (name == "Dude")
tmpCnt++;
因此,长和短都是这样,成员是初始化的,本地人不是。这就是为什么您会收到编译器错误。