Wofür "static"?

Xo-mate

Erfahrenes Mitglied
Hi.
ich hab mal ne Frage:
Und zwar wofür genau das static bei Variablen/Methoden deklarationen steht.

Is hab es selbst in einer Klasse drin, damit ich von "außen" drauf zugreifen kann, aber was genau das static halt macht und wann man es braucht und wann ehr nicht weiß ich nicht.
 
Hi,

zum einen steht das auch in der MSDN Dokumentation. :google:

zum anderen bedeutet static, dass du die Methoden und Member (wenn public) aufrufen kannst, ohne eine Instanz der Klasse zu erzeugen.
Innerhalb der als static deklarierten Methoden darfst du aber nicht mit dem Schlüsselwort this arbeiten, da dieses eine Instanz der Klasse vorraussetzt.
Soweit klar? Ansonsten mal die Doku lesen


Gruß,
Sebastian
 
Man kann eine static variable z.B für gewisse Entwurfsmuster gebrauchen.
Klassisch wäre hier denke ich Singleton. Du kannst von der Klasse immer nur ein Objekt gleichzeitig haben.
Da gibt es dann eine private static bool exists; Und eine static Fabrikmethode die den Konstruktor aufruft und exists auf true setzt. Wenn versucht wird über die Fabrikmethode eine zweite Instanz abzurufen gibt sie einfach null zurück.

Ich glaub jedenfalls so t das. Korrigiert mich wenn ich falsch liege.
 
static sorgt dafür, dass du ein Feld oder eine Methode ohne eine instanz der Klasse verwenden kannst. Allerdings existiert das Feld oder die Methode auch nur einmal. Dies ist z.B. bei eine Globalen Klasse die sich um die Einstellungen eines Programms kümmert nützlich, da du ja die Klasse nur einmal brauchst.
 
Man kann eine static variable z.B für gewisse Entwurfsmuster gebrauchen.
Klassisch wäre hier denke ich Singleton. Du kannst von der Klasse immer nur ein Objekt gleichzeitig haben.
Da gibt es dann eine private static bool exists; Und eine static Fabrikmethode die den Konstruktor aufruft und exists auf true setzt. Wenn versucht wird über die Fabrikmethode eine zweite Instanz abzurufen gibt sie einfach null zurück.

Ich glaub jedenfalls so t das. Korrigiert mich wenn ich falsch liege.

Nunja... macht man eigentlich anders. :)

Implementing the Singleton Pattern in C#

Hier mal ein paar Versionen.. :)
 
Zurück