为了账号安全,请及时绑定邮箱和手机立即绑定

调试时对象的属性和字段的问题

调试时对象的属性和字段的问题

不负相思意 2018-08-02 10:09:08
有一个类0。0有一个公共的A属性(只有get方法,返回另一个类型的静态实例的属性[类型.静态实例.属性]),及一个公共的B字段(直接new 一个对象)。当实例化类型0时(直接new),查看实例化的o对象,看到B字段的各个属性是null,这是正常的,因为没赋值。但是看到对象A的各个属性却不为null。我奇怪的是不知道什么时候给A赋的值,在类0中给属性A和字段B上打断点,发现断点可以执行到B字段,但是A属性的断点并没有执行,所以奇怪怎么会看到A各个属性的值?
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

静态字段如果没有初始化语句,在程序刚开始的时候就会被初始化为默认值,整型0,布尔false,引用为null,我们知道程序有一个唯一的入口Main()函数,可以理解为在还没有进入Main()函数的时候,静态字段就已经初始化好了,而且确实也就是这样,它一旦被初始化了就会一直存在,直到我们的应用程序结束了,这点不像实例字段,实例字段在实例一旦销毁就不存在了,静态字段以及静态成员有一个特定的内存区(我理解为静态内存区),这块区域就像非托管资源一样,不由我们的CLR管理,CLR的垃圾回收机制不会回收它,可以理解为它就像放在那一直被占用一样,不是垃圾.

查看完整回答
反对 回复 2018-08-06
?
达令说

TA贡献1821条经验 获得超6个赞

据说静态类,静态成员在初次使用之前会被CLR初始化,然后一直存在在内存里。

查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 365 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信