为什么编译错误“使用未分配的局部变量”?

为什么编译错误“使用未分配的局部变量”?

我的代码如下

int tmpCnt;  if (name == "Dude")  
   tmpCnt++;

为什么会有错误Use of unassigned local variable tmpCnt?我知道我没有显式初始化它,但是由于默认值表值类型初始化为0不管怎样。这一提法也提醒了我:

请记住,不允许在C#中使用未初始化的变量。

但是,如果默认情况下已经完成了,为什么我必须显式地这样做呢?如果我不用的话,它会不会有更好的表现呢?只是想知道.。


守着一只汪
浏览 683回答 3
3回答

暮色呼如

以下类别的变量被归类为最初的变量未分配:初始未赋值结构变量的实例变量。输出参数,包括struct实例构造函数的此变量。局部变量,但在CATCH子句或foreach语句中声明的变量除外。以下类别的变量被归类为最初的变量指派:静态变量类实例的实例变量。初始赋值结构变量的实例变量。数组元素值参数参考参数在CATCH子句或foreach语句中声明的变量。
打开App,查看更多内容
随时随地看视频慕课网APP