Variable
Aus Das Sopra Wiki
- Lokale Variablen werden innerhalb von Methoden verwendet. Sie sind so lange gültig, wie der Block, in dem sie deklariert wurden, abgearbeitet wird. Danach werden sie aus dem Speicher entfernt. Auch Parameter von Methoden werden - bis auf Ausnahmefälle wie out- oder ref-Parameter - als lokale Variablen angesehen.
- Instanzvariablen sind Bestandteil einer Klasse. Ihre Lebensdauer entspricht der Lebensdauer des Objektes, in dem sie definiert wurden. Sie werden häufig auch als Felder einer Klasse bzw. eines Objektes bezeichnet.
- Klassenvariablen sind ebenfalls Bestandteil einer Klasse, allerdings nicht auf Instanz- bzw. Objektebene, sondern auf Klassenebene. Ihre Lebensdauer entspricht der des Programms, in dem die Klasse definiert wurde. Klassenvariablen existieren jeweils nur einmal im Bezug auf eine Klasse, nicht für jedes Objekt. Sie werden häufig als statische Variablen oder statische Felder bezeichnet.
Inhaltsverzeichnis |
Deklaration
In C# werden Variablen deklariert, indem zunächst ihr Typ und dann ihr Bezeichner angegeben wird:
int a; // Deklariert die Variable a vom Typ int System.Int32 b; // Deklariert die Variable b vom gleichen Typ wie a, also int
An welcher Stelle eine Variable innerhalb eines Bereiches deklariert wird, ist unerheblich. Im Gegensatz zu anderen Sprachen, wie Delphi, in denen alle Variablen zu Beginn einer Methode deklariert werden müssen, kann in C# an beliebiger Stelle innerhalb einer Methode eine Variablendeklaration erfolgen. Wichtig ist nur, dass eine Deklaration erfolgt, bevor die Variable verwendet wird. Damit auf eine Variable zugegriffen werden kann, muss diese vor ihrem Zugriff außerdem noch initialisiert werden. Bei Wertetypen geschieht dies durch die Zuweisung eines Wertes. Lokal definierte Werte- und Referenztypen müssen instantiiert werden. Im globalen Kontext erhalten alle Referenztypen standardmäßig den Wert null, Wertetypen erhalten automatisch den Default-Wert des jeweiligen Typs.
// Deklaration und Initialisierung der Integer-Variable a int a = 13; // Deklaration und Initialisierung des Strings s string s = "Hallo"; // Deklaration und Instantiierung des ComboBox-Objektes box System.Windows.Forms.ComboBox box = new System.Windows.Forms.Combobox();
Bezeichner
Bezeichner, oder Namen einer Variablen identifizieren sie eindeutig und erlauben den Zugriff auf die Variable. Ein Bezeichner muss in C# mit einem Unterstrich (_) oder einem Buchstaben beginnen. Ziffern sind nur innerhalb des Namens erlaubt. Ein Variablenname darf ebenfalls keine Leerzeichen enthalten. Aufgrund der Unicode-Kompatibilität von C# und .NET können auch Sonderzeichen in Variablenbezeichnern verwendet werden. Davon wird allerdings abgeraten:
int _myValue; // Korrekte Deklaration double 1Wert; // Fehler: Der Bezeichner der Variable beginnt mit einer Ziffer double Wert1; // Korrekte Deklaration string Währung; // Korrekte Deklaration, da Unicode-Zeichen unterstützt werden int ein Wert; // Fehler: Der Bezeichner beinhaltet ein Leerzeichen int noch_ein_Wert; // Korrekte Deklaration
Gültigkeitsbereich
Wie bereits erwähnt sind Variablen nur innerhalb des Blocks, in dem sie deklariert wurden, gültig. Das folgende Beispiel soll dies veranschaulichen:
class Class1 { static void Main(string[] args) { int i = 5; // i ist deklariert und initialisiert for (int u = 0; u < 10; u++) { i = i + u; Console.WriteLine(i); } Console.WriteLine(u); // Fehler: u ist hier nicht mehr bekannt Console.ReadLine(); } }
Konstanten
Konstanten werden mit Hilfe des Schlüsselwortes const deklariert. Konstante Variablen können ihren Wert nicht mehr ändern. Sie müssen bereits bei der Deklaration initialisiert werden:
const int speedOfLight = 299792458;
