Warum werden bei C# veränderbare Variablen durch das Wort 'static' deklariert, wenn das Wort 'unveränderbar' bedeutet?

2 Antworten

Weil der Teil mit dem "veränderbar" schon im Wort "Variable" vorkommt. "Static" bezieht sich darauf, dass der Wert zur Klasse gehört und sich nicht zwischen den verschiedenen Instanzen einer Klasse unterscheidet.

Ist vom Wortsinne her nicht 100% logisch, wie ja auch das ganze Konstrukt "statischer Variablen" irgendwie nicht ganz in das Paradigma der Objektorientierten Programmierung gehört. Gibt aber schlimmeres... (manche Leute sprechen zb bei Werten, die mit "const" deklariert wurden, von "konstanten Variablen")

Es bedeutet "stillstehend" - Und so ist es auch:

static-Variablen sind Klassenvariablen.

Es gibt sie genau einmal und die gesamte Programmlaufzeit über an der selben Stelle. Der Ort der Variable ist sozusagen in Stein gemeißelt - eben stillstehend :).

"normale" Variablen sind dagegen viel kurzlebiger und werden im Laufe der Programmausführung erzeugt und vernichtet (diese bekommen ihren Platz im Gegensatz zu den static-Variablen auf dem Stack und dann gehen die Variablen kaputt, wenn der Stack über sie hinweg abgebaut wird, was z.B. bei return passiert).

Woher ich das weiß: Hobby

Was möchtest Du wissen?