使用未赋值的局部变量'x'

本文关键字:局部变量 赋值 | 更新日期: 2023-09-27 18:12:22

代码:

int a;
if(a==1){ do something}

Image img;
   if(img!=null){do something}

以下代码生成错误:

未赋值局部变量'variable-name'的使用

我知道这个错误到底说了什么,以及如何解决它。但我想知道的是

  1. 不应该一个变量声明和不赋值,有一个值吗?比如null对应Image

2。为什么不允许比较变量呢?它可以简单地说不匹配

使用未赋值的局部变量'x'

  1. 不应该一个变量声明和不赋值,有一个值吗?比如"Image"
  2. 为空

。这不是语言的定义方式。局部变量在c#中没有默认值(或大多数其他语言,但绝不是全部)。

2。为什么不允许比较变量呢?它可以简单地说不匹配。

因为你试图读取一个你从未赋值的变量的值,这在c#中是一个bug。因此,它提醒您注意这个bug。