Implizit typierte lokale Variablen deklarieren

Abgeschlossen

Der C#-Compiler arbeitet hinter den Kulissen, um Sie beim Schreiben des Codes zu unterstützen. Er kann den Datentyp Ihrer Variablen anhand des initialisierten Werts ableiten. In dieser Lektion erfahren Sie mehr über dieses Feature, das implizit eingegebene lokale Variablen genannt wird.

Was sind implizit typierte lokale Variablen?

Eine implizit eingegebene lokale Variable wird mithilfe des var Schlüsselworts erstellt, gefolgt von einer Variableninitialisierung. Beispiel:

var message = "Hello world!";

In diesem Beispiel wurde eine Zeichenfolgenvariable mithilfe des var Schlüsselworts anstelle des string Schlüsselworts erstellt.

Das var Schlüsselwort teilt dem C#-Compiler mit, dass der Datentyp durch den zugewiesenen Wert impliziert wird. Nachdem der Typ impliziert wurde, fungiert die Variable so, als ob der tatsächliche Datentyp verwendet wurde, um ihn zu deklarieren. Das var Schlüsselwort wird verwendet, um Tastatureingaben zu sparen, wenn Datentypen lang sind oder wenn der Typ aus dem Kontext offensichtlich ist.

Im Beispiel:

var message = "Hello world!";

Da die Variable message sofort auf den string Wert "Hello World!"festgelegt ist, versteht der C#-Compiler die Absicht und behandelt jede Instanz des message Typs als Instanz des Typs string.

Tatsächlich wird die message Variable so eingegeben, dass sie ein string ist und nie geändert werden kann. Betrachten Sie z. B. den folgenden Code:

var message = "Hello World!";
message = 10.703m;

Wenn Sie diesen Code ausführen, wird die folgende Fehlermeldung angezeigt.

CS0029: Cannot implicitly convert type 'decimal' to 'string'

Hinweis

Andere Programmiersprachen verwenden das var Schlüsselwort anders. In C# werden Variablen einem Typ vom Compiler zugewiesen, unabhängig davon, ob Sie den tatsächlichen Datentypnamen verwenden oder dem Compiler erlauben, den Datentyp zu implizieren. Anders ausgedrückt: Der Typ ist zum Zeitpunkt der Deklaration gesperrt und kann daher niemals Werte eines anderen Datentyps enthalten.

Variablen, die das var Schlüsselwort verwenden, müssen initialisiert werden

Es ist wichtig zu verstehen, dass das var Schlüsselwort vom Wert abhängig ist, den Sie zum Initialisieren der Variablen verwenden. Wenn Sie versuchen, das var Schlüsselwort zu verwenden, ohne die Variable zu initialisieren, wird beim Versuch, den Code zu kompilieren, ein Fehler angezeigt.

var message;

Wenn Sie versuchen, diesen Code auszuführen, während er kompiliert wird, wird die folgende Ausgabe angezeigt:

CS0818: Implicitly-typed variables must be initialized

Warum sollte das var Schlüsselwort verwendet werden?

Das var Schlüsselwort wurde in der C#-Community weit verbreitet. Wenn Sie ein Codebeispiel in einem Buch oder online betrachten, wird wahrscheinlich das var Schlüsselwort anstelle des tatsächlichen Datentypnamens verwendet, daher ist es wichtig, die Verwendung zu verstehen.

Das var Schlüsselwort hat eine wichtige Verwendung in C#. Oft ist der Typ einer Variablen aus der Initialisierung offensichtlich. In diesen Fällen ist es einfacher, das var Schlüsselwort zu verwenden. Das var Schlüsselwort kann auch hilfreich sein, wenn der Code für eine Anwendung geplant wird. Wenn Sie mit der Entwicklung von Code für eine Aufgabe beginnen, wissen Sie möglicherweise nicht sofort, welcher Datentyp verwendet werden soll. Die Verwendung var kann Ihnen helfen, Ihre Lösung dynamischer zu entwickeln.

Bei den ersten Schritten wird empfohlen, den tatsächlichen Datentypnamen weiterhin zu verwenden, wenn Sie Variablen deklarieren, bis Sie mit dem Arbeiten mit Code vertrauter werden. Wenn Sie den Datentyp angeben, wenn Sie Variablen deklarieren, hilft Ihnen das, bewusster zu sein, während Sie Ihren Code schreiben.

Rekapitulation

Das haben Sie bisher über das var-Schlüsselwort gelernt:

  • Das var Schlüsselwort weist den Compiler an, den Datentyp der Variablen basierend auf dem Wert abzuleiten, für den er initialisiert wird.
  • Sie werden wahrscheinlich das Schlüsselwort var sehen, wenn Sie den Code anderer Personen lesen; Sie sollten jedoch nach Möglichkeit den Datentyp verwenden.