为什么结构没有析构函数?

时间:2012-06-28 09:25:40

标签: c# struct destructor

  

可能重复:
  Why structs cannot have destructors?

我知道.NET中的结构没有析构函数,但它不清楚为什么它们以这种方式受到限制。

防止结构有析构函数的技术原因是什么?

2 个答案:

答案 0 :(得分:3)

Source:

  

结构体不能有析构函数。析构函数只是一个覆盖   object.Finalize in伪装,而 structs,是值类型,则不是   受垃圾收集影响

另见Destructors

  

无法在结构中定义析构函数。它们仅用于   类。

     

析构函数隐式调用对象基类的Finalize。

答案 1 :(得分:-3)

C#中的析构函数(Finalize)从GC中被称为隐式。它用于释放Heap中分配的内存。引用类型对象存储在Heap中。 GC仅为引用类型分配和释放内存,并使用堆。