3ya*_*bos 2 .net c# memory-management object
我想知道.Net Framework如何处理声明但未实例化的对象情况.
例如,我声明一个像这样的对象
DropDownList ddl;
Run Code Online (Sandbox Code Playgroud)
什么也不做.我知道我应该对这个变量做一些事情并得到关于它的警告,但我不知道的是它将被存储的位置.
是否有一个查找表存储所有声明的变量的数据?或者是否有每个声明的虚拟参考?
编辑:我只是想知道如何为这个对象声明分配内存.
Edit2:无论是否是局部变量,我只是谈论内存分配结构.我想知道这个引用存储在哪里.
如果ddl
是一个字段,那么值ddl
将是null
,因为它是一个引用类型.
任何试图呼叫其成员的企图都将导致NullReferenceException
.
如果它是局部变量,它将只是未分配.
值类型将获得default(T)
其类型.
编译器本身可以完全删除调用,具体取决于它的声明位置,但这是一个实现细节.
归档时间: |
|
查看次数: |
202 次 |
最近记录: |