Dav*_*vid 7 c# non-nullable unassigned-variable
只是好奇.
如果你走的话:
string myString;
Run Code Online (Sandbox Code Playgroud)
它的值为null.
但如果你去:
int myInt;
Run Code Online (Sandbox Code Playgroud)
C#中此变量的值是多少?
谢谢
大卫
Jon*_*eet 27
首先,请注意,这仅适用于字段,而不适用于局部变量 - 在分配之前无法读取,至少在C#中.实际上,如果你设置了适当的标志,CLR会将堆栈帧初始化为0 - 我相信它是默认的.但它很少被观察到 - 你必须经历一些难以理解的黑客攻击.
默认值为int0 - 对于任何类型,它基本上是由满位零的位模式表示的值.对于值类型,这相当于调用无参数构造函数,对于引用类型,这是null.
基本上CLR用零擦除内存清理.
这也是default(SomeType)任何类型给出的值.
| 归档时间: |
|
| 查看次数: |
4953 次 |
| 最近记录: |