我的代码如下
int tmpCnt;
if (name == "Dude")
tmpCnt++;
Run Code Online (Sandbox Code Playgroud)
为什么会出错Use of unassigned local variable tmpCnt?我知道我没有明确初始化它,但由于默认值表,0无论如何都会初始化值类型.该参考文献也提醒我:
请记住,不允许在C#中使用未初始化的变量.
但是,如果它已经默认完成,为什么我必须明确地这样做?如果我不必这样做,它会不会获得性能?就是想...
Jam*_*are 119
局部变量未初始化.您必须手动初始化它们.
成员已初始化,例如:
public class X
{
private int _tmpCnt; // This WILL initialize to zero
...
}
Run Code Online (Sandbox Code Playgroud)
但局部变量不是:
public static void SomeMethod()
{
int tmpCnt; // This is not initialized and must be assigned before used.
...
}
Run Code Online (Sandbox Code Playgroud)
所以你的代码必须是:
int tmpCnt = 0;
if (name == "Dude")
tmpCnt++;
Run Code Online (Sandbox Code Playgroud)
所以它的长期和短期是,成员被初始化,当地人不是.这就是你得到编译器错误的原因.
以下类别的变量被归类为最初未分配的变量:
以下类别的变量分类为最初分配的:
| 归档时间: |
|
| 查看次数: |
211119 次 |
| 最近记录: |