diditwithook Geschrieben 11. November 2010 Geschrieben 11. November 2010 gibt es eine static variable in c# wie static in c++ benützt wird? bsp.: rufe ich eine funktion rekursiv auf und möchte ich zählen auf welcher ebene ich bin hätte ich in c++ eine static variable die ich in der funktion deklariere, d.h. sie ist nur in dieser funktion sichtbar. ändere ich den wert dieser variable, rufe diese funktion wieder auf habe ich den veränderten wert dieser variable in der neu aufgerufenen funktion, pseudocode bsp.: main { _CountAndWrite(); } function _CountAndWrite() { static int i = 0; i++; cout<<i+"\n"; _CountAndWrite(); } ausgabe: 1 2 3 4 ... gibt es sowas in c#? wenn ich diese variable nicht als parameter übergeben möchte? Zitieren
diditwithook Geschrieben 11. November 2010 Autor Geschrieben 11. November 2010 gibt es etwas "ähnliches"? muss doch irgendwie abgebildet werden? Zitieren
Klotzkopp Geschrieben 11. November 2010 Geschrieben 11. November 2010 Du kannst die Rekursion in eine eigene Klasse stecken, und dort über eine Membervariable die Rekursionstiefe nachhalten. Möglicherweise kannst du dir auch ein zustandsbehaftetes rekursives Delegate basteln. Aber am einfachsten dürfte es sein, den Zustand (hier also die Rekursionstiefe) als Parameter zu übergeben. Zitieren
NerdonRails Geschrieben 11. November 2010 Geschrieben 11. November 2010 gibt es etwas "ähnliches"? muss doch irgendwie abgebildet werden? Ich werf mal singleton in den Raum. Das man etwas in Methoden nicht als static deklarieren kann, sollte einleuchten, da man Object-State in eine Methode packen würde, und sobald der Methodenkontext verlassen wird, wäre es vom Rest des Objektes aus nicht möglich, auf den static-state zuzugreifen, da static hier dann minimum Objekt-Statisch, wenn nicht sogar Prozessstatisch ist. Macht also Sinn, das sowas nicht in C# geht. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.