LA.Net
Reflexões sobre C#, .Net e programação em geral

Antes de mais, a resposta ao item da semana passada :) Para perceber o que está a acontecer, basta pegar, por exemplo, no .Net Reflector e verificar o código gerado. Aliás, esse código é muito semelhante ao que o José António indicou. A minha única discórdia resume-se ao facto de o exemplo apresentado ser equivalente à situação em que a variável é declarada no using (ao contrário deste caso, em que a variável é declarada fora e depois é utilizada no bloco.

Esta semana temos uma contribuiçã do nosso amigo Pedro Santos. Bem, então será que este código está correcto?

class FooField {
   string hello = "HELLO";
   public void Hello()
  {
        Console.WriteLine( hello.ToLower() );
   }
  ~FooField()
  {
       hello = null;
       Console.WriteLine("~FooField()");
   }
};

class Foo {
   FooField field = new FooField();

   ~Foo()
   {
        field.Hello();
        Console.WriteLine("~Foo()");
    }
};

Fiquem bem e atá à próxima semana.

posted on Sunday, July 11, 2004 6:41 PM
Comments
  • # re: GOT C# 4
    Miguel Carvalho aka a2ps
    Posted @ 7/12/2004 3:00 AM
    eu diria que não pk no momento em que ele no destructor do Foo chama o metodo Hello() ja o objecto FooField foi destruido, será que é pk no C# ele a 1ª coisa que faz nos destructor é destruir todos os objectos dessa classe e só então prossegue com o que se encontra dentro desse destructor?
  • # GOT C# 5
    LA.Net
    Posted @ 7/20/2004 10:03 PM
Title  
Name  
Url
Box Code
Protected by FormShield
Comments