【问题标题】:Destructor and C# specification [duplicate]析构函数和 C# 规范 [重复]
【发布时间】:2016-04-21 06:47:30
【问题描述】:

我正在阅读 C# 规范,但我不明白这一点:

析构函数是实现所需操作的成员 销毁一个类的实例。

当一个对象开始符合销毁条件时,它是否执行销毁对象的操作?

一般来说,我们在析构函数中放入释放非托管的语句 资源,所以我真的不明白我们如何才能使用破坏对象本身的语句!

也许我误解了它的意思?

【问题讨论】:

  • C# 中通常将它们称为Finalizers 以避免混淆。相关:stackoverflow.com/a/4899622/1870760
  • 销毁!= 销毁。
  • @CodeCaster,“析构函数、处置和终结方法之间的区别”的答案没有回答我的问题!我的问题不是关于那个区别,而是关于析构函数做什么的 C# 解释。我不认为我的问题是重复的。
  • “析构函数做什么的解释” - 这在副本中得到了很好的解释。您的困惑来自于认为“破坏”(与构造相反)意味着“破坏”(从记忆中抹去),但事实并非如此。

标签: c#


【解决方案1】:

析构函数不会破坏对象本身。 它们在对象被 GC 销毁之前被调用。 但如果您必须关闭某些网络连接、数据库连接或之前打开的任何其他资源,它们会很有用。

【讨论】:

  • 是的,我知道,但是 C# 规范没有这样说...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2016-08-14
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
相关资源
最近更新 更多