use*_*312 4 c# constructor destructor
你能否告诉我c#中的构造函数是否需要可用于设置默认值的属性?
再次,是否需要将语言垃圾收集的析构函数?
请给我一些实际的例子.
构造函数对于初始化不可变数据至关重要.它们还有助于声明IoC/DI期望/需求.对于配置对象所需的最小数据集的场景,尽早请求它是很有用的 - 这通常意味着构造函数.
析构函数/终结器通常用于释放非托管资源 - 例如OS句柄,或来自非托管区域的内存(Marshal.AllocHGlobal).这些资源不是垃圾收集的,因此必须小心手动释放它们 - 否则会发生泄漏,或者您使有限的池饱和.这些示例在应用程序代码中非常罕见,除了IDisposable- 当它没有正确处理时,它几乎总是用作后备.