new操作符所做的事情:
1.它计算类型及其所有基类型(最高到System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字

段需要的字节数。堆上的每个对象都需要一些额外的成员——称为“类型对象指针(type object pointer)

”和“同步块索引(sync block index)”,这些成员将由CLR用来管理对象。这些额外的成员的字节数会加

到对象大小上。
2.它从托管堆中分配指定类型所需的字节数,从而分配对象的内存,分配的所有字节都设为零(0)。
3.它初始化对象的“类型对象指针”和“同步块索引”成员。
4.调用类型的实例构造器,向其传入在new调用中指定的任何实参。

new执行了所有这些操作之后,会返回对新创建的对象一个引用(或者指针)。

摘自:框架设计(第2版):CLR Via C#     p80


相关文章:

  • 2022-12-23
  • 2022-01-27
  • 2022-12-23
  • 2022-01-05
  • 2022-02-09
  • 2022-12-23
猜你喜欢
  • 2021-12-12
  • 2022-12-23
  • 2022-01-03
  • 2022-12-23
  • 2021-07-25
  • 2021-09-29
  • 2021-11-20
相关资源
相似解决方案