我的代码如下
int tmpCnt; if (name == "Dude") tmpCnt++;
为什么会出现错误Use of unassigned local variable tmpCnt?我知道我没有明确初始化它,但是由于默认值表,0无论如何都使用了一个值类型。该参考还提醒我:
Use of unassigned local variable tmpCnt
0
请记住,不允许在C#中使用未初始化的变量。
但是,如果默认情况下已经完成,为什么还要显式地执行呢?如果我不必这样做,它不会获得性能吗?就是想…
局部变量未初始化。您必须手动初始化它们。
成员 被初始化,例如:
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++;
因此,长和短都是这样,成员是初始化的,本地人不是。这就是为什么您会收到编译器错误。