C#-Anweisungen

Tip

Dieser Artikel ist Teil des Abschnitts "Grundlagen" für Entwickler, die bereits mindestens eine Programmiersprache kennen und C# erlernen. Wenn Sie noch nicht mit der Programmierung vertraut sind, beginnen Sie zuerst mit den Lernprogrammen " Erste Schritte ". Vollständige Anweisungssyntax finden Sie in den Anweisungen in der C#-Sprachspezifikation.

Kommen Sie aus einer anderen Sprache? Deklarationen, Bedingungen, Schleifen und Rückgaben dürften Ihnen bekannt vorkommen. C# verwendet eine eigene Syntax und Klassifizierung für diese Features, die in diesem Artikel vorgestellt wird.

Eine Anweisung ist ein vollständiger Befehl: "Tun Sie dies.". Zusammen bilden die Anweisungen in einem Programm ein Rezept, das das Programm von Anfang bis Ende folgt. Die meisten Anweisungen werden sequenziert ausgeführt. Verzweigungen bestimmen, welche Schritte ausgeführt werden sollen, und Schleifen wiederholen Schritte.

In diesem Beispiel wird eine Anzahl deklariert, angezeigt und dann eine if-Anweisung verwendet, um zu entscheiden, ob nachbestellt werden soll:

int quantity = 5;
Console.WriteLine($"Quantity: {quantity}"); // => Quantity: 5

if (quantity < 10)
{
    quantity = 10;
    Console.WriteLine("Restocked"); // => Restocked
}

Console.WriteLine($"Quantity: {quantity}"); // => Quantity: 10

Lesen Sie das Beispiel als vollständige Befehle, bevor Sie sich ihre Teile ansehen. Die Deklaration, der erste Aufruf von Console.WriteLine, das gesamte if-Konstrukt und der letzte Aufruf von Console.WriteLine sind Anweisungen. Der Block innerhalb der if Anweisung enthält zwei weitere Anweisungen.

Anweisungen enthalten häufig Ausdrücke

Anweisungen enthalten häufig Ausdrücke, bei denen es sich um Codeteile handelt, die Werte erzeugen. Im vorherigen Beispiel ist das gesamte if Konstrukt eine Anweisung. Seine Bedingung, quantity < 10, ist ein Ausdruck, der entweder true oder false ergibt.

Eine Deklarationsanweisung führt eine lokale Variable oder Konstante ein. Ein Initialisierungsausdruck kann seinen ersten Wert bereitstellen:

int quantity = 5;

Die vollständige Zeile ist eine Deklarationsanweisung. Der Initialisierer 5 ist ein Ausdruck in dieser Anweisung.

Ein Zuordnungsausdruck speichert einen Wert in einer Variablen, Einer Eigenschaft, einem Indexer oder einem anderen Speicherort. C# erlaubt, dass ein Zuweisungsausdruck eine Ausdrucksanweisung bildet:

quantity = 10;

Diese Anweisung führt eine Aktion aus, anstatt nur einen Wert zu berechnen. Methodenaufrufe und Inkrementvorgänge sind andere allgemeine Ausdrucksanweisungen:

Console.WriteLine("Restocking");
quantity++;

Nur die folgenden Ausdrucksformulare können Ausdrucksanweisungen sein:

  • Zuordnungsausdrücke
  • Methodenaufrufausdrücke
  • Objekterstellungsausdrücke
  • Präfix- oder Postfix-Inkrement- und Dekrementausdrücke
  • await Ausdrücke

Nicht jeder Ausdruck kann für sich allein als Aussage stehen. Berechnet z. B. einen Wert, quantity + 1; verwendet ihn aber nicht. Es ist keine gültige Aussage.

Hier ist eine nützliche Arbeitsdefinition: Eine Anweisung ist ungefähr wie ein vollständiger Satz in Englisch, während ein Ausdruck wie ein Ausdruck ist. Diese Unterscheidung hilft Ihnen, die formale Terminologie und Erläuterungen zu verstehen, die Sie in Dokumentationen und Spezifikationen finden, obwohl gewöhnliche Codierungen selten erfordern, dass Sie sich bewusst an die Unterscheidung erinnern.

Anweisungen in Blöcken gruppieren

Ein Block gruppiert null oder mehr Anweisungen zwischen geschweiften Klammern ({ und }). C# behandelt die Gruppe als eine Anweisung. Im einleitenden Beispiel kann die if-Anweisung sowohl die Zuweisung als auch den Aufruf von Console.WriteLine ausführen, da ein Block beide zu einem einzigen Anweisungsblock zusammenfasst. Blöcke können in anderen Blöcken geschachtelt werden.

Auswahl- und Iterationsanweisungen bezeichnen ihren Anweisungskörper als eingebettete Anweisung. Dieser Textkörper kann eine Anweisung ohne geschweifte Klammern oder einen Block sein, der mehrere Anweisungen gruppiert.

Bevorzugen Sie einen Block auch dann, wenn ein Textkörper nur eine Anweisung enthält. Geschweifte Klammern zeigen, welche Anweisungen zum Textkörper gehören, und verhindern, dass spätere Bearbeitungen versehentlich eine Anweisung außerhalb der Anweisung platzieren.

Blöcke definieren variablen Bereich

Variablen, die in einem Block deklariert sind, befinden sich im Bereich ihrer Deklaration bis zum Ende dieses Blocks. Ein geschachtelter Block kann Variablen verwenden, die durch einen eingeschlossenen Block deklariert werden, der eingeschlossene Block kann jedoch keine Variablen verwenden, die nur im geschachtelten Block deklariert sind:

int outerValue = 10;

if (outerValue > 0)
{
    int innerValue = outerValue * 2;
    Console.WriteLine(innerValue); // => 20
}

// innerValue isn't in scope here.

Auswählen einer Anweisung für die Aufgabe

Nachdem Sie Anweisungen als Befehle erkannt haben, können Sie zwischen ihren verschiedenen Arten nach Zweck wählen:

  • Daten deklarieren:Deklarationsanweisungen führen lokale Variablen und Konstanten ein.
  • Aktionen ausführen: Ausdrucksanweisungen können Werte zuweisen, Methoden aufrufen, Objekte erstellen, Werte inkrementieren oder dekrementieren oder auf asynchrone Vorgänge warten.
  • Auswahlschritte:Auswahlanweisungen wie if und switch legen fest, welcher Code ausgeführt wird.
  • Wiederholungsschritte:Iterationsanweisungen wie foreach, while und for wiederholen eine Anweisung oder einen Codeblock.
  • Steuerungsübertragung:Sprunganweisungen wie break, continue, return und yield setzen die Ausführung an einer anderen Stelle fort.
  • Ausnahmen behandeln:Anweisungen zur Ausnahmebehandlung, wie try, catch und throw, reagieren auf Fehler oder melden sie.
  • Ressourcen verwalten: Die using Anweisung sorgt dafür, dass Ressourcen freigegeben werden.
  • Verwenden Sie spezielles Verhalten: Die checked und unchecked, fixedund lock Anweisungen unterstützen bestimmte Szenarien.

C#-Sprachspezifikation

Weitere Informationen finden Sie im Abschnitt Anweisungen der C#-Sprachspezifikation.

Siehe auch