Разрушитель или Разрушитель? - PullRequest
15 голосов
/ 23 июля 2010

В своей повседневной жизни и при чтении книг я видел термин «деструктор» и «деструктор».

Но как правильно назвать этот метод?

Ответы [ 5 ]

17 голосов
/ 23 июля 2010

Это деструктор , используемый для очистки вещей, когда объект вот-вот умрет.Вызывается автоматически, если указано, когда объект будет удален / умер.

Подробнее:

http://en.wikipedia.org/wiki/Destructor_%28computer_science%29

9 голосов
/ 23 июля 2010

Разрушитель, если вы ссылаетесь на ООП.Разрушитель при разговоре о World of Warcraft ; -).

5 голосов
/ 23 июля 2010

Деструктор является наиболее распространенным термином (деконструктор звучит как местное использование: мне он нравится в некотором смысле, поскольку он указывает на симметрию с конструкторами).

Но эти вещи в некоторой степени зависят от языка, поскольку разные ОО-языки имеют разные модели жизненного цикла экземпляров.Возьмем, например, C #, где вместо деструкторов у вас есть финализаторы , которые имеют слабые гарантии выполнения, дополненные поддерживаемым языком шаблоном Dispose(), который обеспечиваетдетерминированность.

3 голосов
/ 12 января 2011

«Разрушитель» - действительно правильный термин.Я видел «деконструктор» в старых книгах, и похоже, что некоторое время велись споры о правильном термине, но деструктор, похоже, победил.о деконструкции: попробуйте поискать «деструктор» в стандартном словаре.По-видимому, это устройство для уничтожения бортовой ракеты или ракеты-носителя.

2 голосов
/ 07 марта 2017

Как уже объясняли другие, 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, но я нашел по крайней мере один экземпляр в официальном блоге msdn , который называется deconstructor (выделено мной):

Будет обычным делом иметь конструкторы, а деконструкторы будут «симметричными» таким образом.

...