[Этюд] Сломанный деструктор
От: Mab Россия http://shade.msu.ru/~mab
Дата: 20.09.10 19:56
Оценка: 66 (4)
Рассмотрим следующий класс:
class Goodbye
{
  public Goodbye()
  {
     Console.WriteLine("hello");
  }

  ~Goodbye()
  {
     Console.WriteLine("goodbye");
  }
}


Тогда в обычных обстоятельствах код
static void Main()
{
   new Goodbye();
   GC.Collect();
   GC.WaitForPendingFinalizers();
}

выведет на консоль
hello
goodbye


Однако если вместо
class Goodbye

написать
class Goodbye : DontSayGoodbye

то выведено будет только
hello


Как устроен DontSayGoodbye?

Ограничение: DontSayGoodbye не должен иметь конструктора по умолчанию.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.