![]() |
1
8
第一个示例(错误)是编译器的示例
definite-assignment
这只适用于局部变量。由于上下文有限,编译器对这种情况有着严密的控制。注意
在第二个示例中,
所以是设计出来的。 |
![]() |
2
3
对于第二个示例,代码是有效的,可能无法正确运行。下面是几个可以“成功”执行该程序的情况
|
![]() |
3
0
我只能猜测,在第二个示例中,可以通过反射(使用bindingFlags.private访问私有成员)更改s。 |
![]() |
4
0
在第一个样本中 S 是局部变量,编译器可以轻松检查 S 变量在使用前没有被分配。 在第二个阶段, S 是一个全局变量,它可能是在类的其他地方初始化的。 |
|
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
![]() |
Cobra_Fast · 如何查找不必要的空运算符? 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |