Entwickler-Ecke
C# - Die Sprache - Destructor
deusr - Fr 13.04.07 13:46
Titel: Destructor
Hallo Leute,
zunächst mal der Quelltext:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| public class Bla { private static int _counter = 0;
public virtual int counter { get { return _counter; } } public Bla() { _counter++; }
~Bla() { _counter--; }
} |
Ziel dieser ganzen Aktion ist, dass ich gerne die Anzahl der Instanzen wissen möchte, die aktuell aktiv sind. Wenn eine neue Instanz erstellt wird, wird der Counter richtigerweise erhöht, aber mit dem Löschen funktioniert das leider noch nicht wirklich. Kann mir jemand sagen, wieso?
Christian S. - Fr 13.04.07 17:32
Was genau klappt denn nicht?
r2c2 - Fr 13.04.07 17:34
Titel: Re: Destructor
deusr hat folgendes geschrieben: |
Wenn eine neue Instanz erstellt wird, wird der Counter richtigerweise erhöht, aber mit dem Löschen funktioniert das leider noch nicht wirklich. Kann mir jemand sagen, wieso? |
AFAIK ganz einfach, weil das kein Destruktor ist. Das is n Finalizer und bei sowas kann man eben nicht genau bestimmen, wann der aufgerufen wird. Du zählst im Speicher vorhandene Instanzen, keine Referenzen ==> IDisposable wär IMHO ne Möglichkeit...
mfg
Christian
deusr - Fr 13.04.07 17:47
Christian S. hat folgendes geschrieben: |
Was genau klappt denn nicht? |
_counter--; wird nicht sofort ausgeführt, sondern irgendwann, wenn es mal Lust und Zeit hat.
Christian S. - Fr 13.04.07 18:04
deusr hat folgendes geschrieben: |
Christian S. hat folgendes geschrieben: | Was genau klappt denn nicht? |
_counter--; wird nicht sofort ausgeführt, sondern irgendwann, wenn es mal Lust und Zeit hat. |
Japp, das ist richtig so. Siehe das Posting R2C2. Es ist halt nicht genau bekannt, wann ein Desktruktor aufgerufen wird. R2C2 hat auch den Tipp gegeben, wie es gehen kann.
deusr - Fr 13.04.07 18:06
Christian S. hat folgendes geschrieben: |
Japp, das ist richtig so. Siehe das Posting R2C2. Es ist halt nicht genau bekannt, wann ein Desktruktor aufgerufen wird. R2C2 hat auch den Tipp gegeben, wie es gehen kann. |
Jaja, ich habs schon verstanden :) Ich werde es mal mit dem Tipp von r2c2 versuchen. Ich wollte nur mal eben auf deine Frage antworten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!