提问者:小点点

我对以下关于变量的术语的解释正确吗?


我一直试图理解以下术语:最初赋值的变量和最初未赋值的变量。但我不确定我对这些术语的解释是否正确。底部加粗的文字是我的解读。所以,如果我误解了什么,请随时纠正我。

在阅读了以下有关变量的C#Microsoft文档https://docs.Microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/variables#precise-rule-for-determination-definited-assignment)之后,它指出:“变量要么是初始赋值的,要么是初始未赋值的。初始赋值的变量有一个定义良好的初始值,并且始终被认为是明确赋值的。初始未赋值的变量没有初始值。”

因此,根据我从上述声明中的理解:

初始赋值的变量指的是一个变量,在第一次声明时,该变量要么用相应的默认值自动初始化(因为这样的变量可能是),要么由程序员显式初始化。这种解释正确吗???

***以下变量分类为初始赋值(根据C#文档):

  • 静态变量
  • 类实例的实例变量
  • 初始分配的结构变量的实例变量
  • 数组元素
  • 值参数
  • 参考参数
  • 在catch子句或foreach语句中声明的变量。

初始未赋值变量指的是一个变量,当它第一次声明时,它既没有用相应的默认值自动初始化(因为这样的变量不可能),也没有被程序员显式初始化。这种解释正确吗???

***以下类别的变量被分类为初始未赋值(根据C#文档):

  • 初始未赋值结构变量的实例变量
  • 输出参数,包括结构实例构造函数的this变量
  • 局部变量,但在catch子句或foreach语句中声明的变量除外。

共1个答案

匿名用户

初始赋值的变量指的是一个变量,该变量在第一次声明时,要么是用各自的默认值[...]自动初始化的

如果我没理解错的话,那就不是。

示例:

bool b;
Console.WriteLine(b);

这将抛出:

Use of unassigned local variable 'b'

如果您指定了一个值,则为“初始分配”:

bool b = true;

如果你不这么做就没有任务。

相关问题