这篇文章主要讲解了“C#中new操作符的工作机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#中new操作符的工作机制是什么”吧!
有一个父类Animal,Dog派生于Animal。
class Program { static void Main(string[] args) { Dog dog = new Dog(); Console.WriteLine("我能调用老祖宗Object的实例方法GetType,显示结果为:" + dog.GetType() ); Console.WriteLine("我能拿到父类的属性Age=" + dog.Age); Console.WriteLine("我当然能拿到自己的公共字段_weight=" + dog._weight); } } public class Animal { public int Age { get; set; } public Animal(){} } public class Dog : Animal { public decimal _weight; public Dog(){} }
虽然创建了子类Dog的实例,但通过dog实例能调用"老祖宗"System.Object的实例方法,也能获取到父类的公共属性Age的值,并且所有的实例字段值为其类型的默认值。
计算Dog类以及所有父类实例字段所占的字节数
计算Dog类以及所有父类"类型对象指针"和"同步块索引"所占的字节数
根据字节数,托管堆分配内存
先调用所有父类的构造函数,最后调用Dog的构造函数。在这过程中,初始化所有实例字段,字段值为字段类型的默认值或构造函数实参值;初始化"类型对象指针"和"同步块索引"成员
把新建的Dog实例的堆地址赋值给栈变量dog
通过new创建的托管堆对象最终由GC回收
感谢各位的阅读,以上就是“C#中new操作符的工作机制是什么”的内容了,经过本文的学习后,相信大家对C#中new操作符的工作机制是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。