Hallo Stephan,

Nein. Bei .NET ist es nicht deterministisch wann der Finalizer (also
Destructor) aufgerufen wird. Wenn du definierte Zerst�rung brauchst mu�t
du das Dipose-Pattern verwenden (und IDisposable implementieren). Das
ist aber f�r sowas wie deine Sanduhrklasse absolut sinnlos weil's zu
aufwendig ist daf�r, w�rde aber in etwa so aussehen:

public class Sanduhr : IDisposable
{
    private Form f;
    private Cursor c;
    public Sanduhr(Form Wnd, Cursor crs)
    {
        f = Wnd;
        c = f.Cursor;
        f.Cursor = crs;
    }

    public void Dispose()
    {
        f.Cursor = c;
    }
}

Anwendung:

public void SomeFormFuction()
{
    using(Sanduhr s = new Sanduhr(this, Cursor.Wait))
    {
        //sonstiger Code
    }
}

Gru�
Peter

P.S.: Bitte verzichte wenn's geht auf HTML Mail.

-----Original Me  ssage-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Stephan Hartmann
Sent: Dienstag, 18. November 2003 14:29
To: [EMAIL PROTECTED]
Subject: [Csharp.net] Constructor - Destructor


Hallo,

ich habe gerade nach alter C++ - Gewohnheit die sch�ne Sanduhrklasse
versucht:

public class Sanduhr {
    private Cursor OldC;
    private Form m_Wnd;

     public Sanduhr(Form Wnd) {
         m_Wnd = Wnd;
         OldC = m_Wnd.Cursor;
         m_Wnd. Cursor = Cursors.WaitCursor;
     }

    ~Sanduhr() {
        m_Wnd.Cursor = OldC;
    }
}
(Anwendung ist in C++ - Programmen so, da� man nur eine Instanz der
Klasse in der Funktion deklariert, w�hrend der die Sanduhr angezeigt
werden soll. Beim Verlassen der Funktion kommt die Klassenvariable aus
der Lifetime, der Destruktor wird gerufen, und der vorherige Cursor ist
wieder da. Sinn der �bung: Man kann's nicht mehr vergessen...)

Nun wird der Destructor nicht wie bei C++ dann gerufen, wenn die Klasse
aus der Lifetime ger�t, sondern irgendwann, wenns dem Framwork
einf�llt...

Kann ich das irgendwie deklarieren?

Danke, Gr��e
 Stephan

_______________________________________________
Csharp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/csharp.net

Antwort per Email an