文件名称:明确赋值-大彩串口屏各组态控件详细介绍
文件大小:4.46MB
文件格式:PDF
更新时间:2024-06-28 03:33:29
C#5.0 PDF C#学习
5.3 明确赋值 在函数成员可执行代码中的给定位置,如果编译器可通过特定的静态流程分析(第 5.3.3 节)证明变量 已自动初始化或已成为至少一个赋值的目标,则称该变量已明确赋值 (definitely assigned)。非正式地讲, 明确赋值的规则为: 初始已赋值的变量(第 5.3.1 节)总是被视为已明确赋值。 如果所有可能通向给定位置的执行路径都至少包含以下内容之一,则初始未赋值的变量(第 5.3.2 节) 被视为在该位置已明确赋值: o 将变量作为左操作数的简单赋值(第 7.17.1 节)。 o 将变量作为输出形参传递的调用表达式(第 7.6.5 节)或对象创建表达式(第 7.6.10.1 节)。 o 对于局部变量,包含变量初始值设定项的局部变量声明(第 8.5.1 节)。 以上非正式规则所基于的正式规范在第 5.3.1 节、第 5.3.2 节和第 5.3.3 节中说明。 关于对一个 struct-type 变量的实例变量是否明确赋值,既可个别地也可作为整体进行跟踪。除了上述规 则,下面的规则也应用于 struct-type 变量及其实例变量: 如果一个实例变量的包含它的那个 struct-type 变量被视为已明确赋值,则该实例变量被视为已明确 赋值。 如果一个 struct-type 变量的每个实例变量都被视为已明确赋值,则该结构类型变量被视为已明确赋 值。 在下列上下文中要求实施明确赋值: 变量必须在获取其值的每个位置都已明确赋值。这确保了从来不会出现未定义的值。变量在表达式 中出现被视为要获取该变量的值,除非当 o 该变量为简单赋值的左操作数, o 该变量作为输出形参传递,或者 o 该变量为 struct-type 变量并作为成员访问的左操作数出现。 变量必须在它作为引用形参传递的每个位置都已明确赋值。这确保了被调用的函数成员可以将引用 形参视为初始已赋值。 函数成员的所有输出形参必须在函数成员返回的每个位置都已明确赋值,返回位置包括通过 return 语句实现的返回,或者通过执行语句到达函数成员体结尾的返回。这确保了函数成员不在 输出形参中返回未定义的值,从而使编译器能够把一个对函数成员的调用当作对某些变量的赋值, 这些变量在该调用中被当作输出形参传递。 struct-type 实例构造函数的 this 变量必须在该实例构造函数返回的每个位置明确赋值。 5.3.1 初始已赋值变量 以下类别的变量属于初始已赋值变量: 静态变量。