在我的日常生活中,在阅读书籍的过程中,我看到了析构函数和解构函数这两个词。
但这个方法的正确名称是什么?
答案 0 :(得分:17)
析构函数用于在对象即将死亡时清理内容。如果指定何时移除/死亡对象,则会自动调用它。
更多信息:
http://en.wikipedia.org/wiki/Destructor_%28computer_science%29
答案 1 :(得分:9)
析构函数,如果您指的是OOP。谈话时的构造函数 World of Warcraft; - )。
答案 2 :(得分:5)
析构函数是最常用的术语(解构函数听起来像本地用法:我喜欢它,因为它指出了构造函数的对称性)。
但是这些事情在某种程度上是语言特定的,因为不同的OO语言者对实例的生命周期有不同的模型。以C#为例,instead of destructors finalizers具有弱执行保证,supplemented由语言支持的Dispose()
模式提供确定性。
答案 3 :(得分:3)
“析构函数”确实是正确的术语。 我在旧书中看过“解构主义者”,似乎在正确的术语中有一段时间存在争议,但析构函数似乎已经胜出。
关于wiki或WoW关于解构的说法的轻率答案:尝试在标准词典中查找“析构函数”。显然,它是一种用于摧毁越野机载导弹或运载火箭的装置。
答案 4 :(得分:2)
正如其他人已经解释的那样,destructor
用于清理对象。
C#7中有一项新功能,可以称为deconstructor
:
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public void Deconstruct(out string firstName, out string lastName)
{
firstName = FirstName;
lastName = LastName;
}
}
var person = new Person { FirstName = "John", LastName = "Smith" };
var (localFirstName, localLastName) = person;
此功能的更常见名称为deconstruct method
或deconstruction
但我在official msdn blog上发现至少有一个实例将其称为deconstructor
(强调我的):
以这种方式构建器和解构器是“对称的”将是一种常见的模式。