Eine Klassenvariable nur für eine Methode
-
Hallo Forum,
wie definiert man eine Variable in C# deren Inhalt nur innerhalb einer einzigen Methode benötigt wird. Man könnte diese Variable in den Private Bereich der Klasse verschieben, aber ich möchte sie lokal an die Methode binden. Gibt es da in C# ein Syntax?
Vielen Dank
Albertus
-
Nein. Du kannst höchstens einen Klassenmember nutzen, geht in C# nicht anders.
-
Gut, dann mache ich es so. Danke
-
class Test { public void foo() { int bar; // nur innerhalb von foo verfügbar } }
?
-
Ja, die Variable soll aber den Inhalt nach Beendigung der Methode behalten. Das hatte ich im Ausgangsposting nicht explizit gesagt.
-
static
-
C# hat keine function-local statics.
-
Aus Interesse: Wenn man ein Klassenvariable in C# als static definiert dann ist sie für alle Objekte der Klasse gleich. Wenn man bei Java eine Variable in einer Methode als static definiert, dann behält sie den Wert. Da gibt es eine unterschiedliche Bedeutung von static bei den beiden Sprachen.
-
Albertus schrieb:
Wenn man bei Java eine Variable in einer Methode als static definiert
Das geht in Java auch nicht. Ich hab zwar schon seit Jahren kein Java mehr angefasst, aber es würde mich doch sehr überraschen.
-
Sowas braucht man auch nicht, wenn man akzeptiert, dass Klassen die kleinste Einheit der Kapselung sind.
-
Argh, das war in c++ und nicht in Java.
(Das static Variablen den Wert nach Funktionsende behalten.)
-
Statische Extension Klasse mit einer einzigen statischen Methode und statische Member? Hmm....