1.1.2.1 类中的实例变量
类的实例变量在创建该类的新实例时开始存在,在所有对该实例的引用都已终止,并
且已执行了该实例的析构函数(若有)时终止。
类实例变量的初始值是该变量的类型的默认值(第 1.2 节)。
出于明确赋值检查的目的,类的实例变量被视为初始已赋值。
1.1.2.2 结构中的实例变量
结构的实例变量与它所属的结构变量具有完全相同的生存期。换言之,当结构类型的
变量开始存在或停止存在时,该结构的实例变量也随之存在或消失。
结构的实例变量与包含它的结构变量具有相同的初始赋值状态。换言之,当结构变量
本身被视为初始已赋值时,它的实例变量也被视为初始已赋值。而当结构变量被视为
初始未赋值时,它的实例变量同样被视为未赋值。
1.1.3 数组元素
数组的元素在创建数组实例时开始存在,在没有对该数组实例的引用时停止存在。
每个数组元素的初始值都是其数组元素类型的默认值(第 1.2 节)。
出于明确赋值检查的目的,数组元素被视为初始已赋值。
1.1.4 值参数
未用 ref 或 out 修饰符声明的参数为值参数 (value parameter)。
值形参在调用该参数所属的函数成员(方法、实例构造函数、访问器或运算符)时开
始存在,并用调用中给定的实参的值初始化。当返回该函数成员时值参数停止存在。
出于明确赋值检查的目的,值参数被视为初始已赋值。
1.1.5 引用参数
用 ref 修饰符声明的参数是引用参数 (reference parameter)。
引用参数不创建新的存储位置。相反,引用参数表示的是那个在对该函数成员调用中
被当作“自变量”的变量所表示的同一个存储位置。因此,引用参数的值总是与基础变量
相同。
下面的明确赋值规则适用于引用参数。注意第 1.1.6 节中描述的输出参数的不同规则。
变量在可以作为引用参数在函数成员调用中传递之前,必须已明确赋值(第 1.3
节)。
在函数成员内部,引用参数被视为初始已赋值。
在结构类型的实例方法或实例访问器内部,this 关键字的行为与该结构类型的引用参
数完全相同(第 Error: Reference source not found 节)。
1.1.6 输出参数
用 out 修饰符声明的参数是输出参数 (output parameter)。