//Eine Region wird genutzt und Codeblöcke über mehrere Methoden und Teilabschnitte zu bündeln //und einklappbar zu machen. Die Region ist kein kompilierbarer Code, eher Deko für den Programmierer #endregion #region Shortcuts und anderes //TODO: Dieser Kommentar erstellt einen Eintrag in die Taskliste //Hack auch (Zu finden ist die Taskliste unter Menueintrag View) //STRG+. zeigt Vorschläge an //Autovervollständigen mit TAB, TAB TAB //Auskommentieren und Komentar zurücksetzen ALT + Up/Down, STRG + k,c/k,u //(um einzelne Shortcuts nachzuschlagen, bzw zu editieren in Titelleiste nach Keymap suchen) #endregion #region MainFunktion /// <summary> /// Diese Funktion startet das Programm /// Sie MUSS static sein, da sie ohne Instanzieirung gestartet wird /// </summary> /// <param name="args">Kommandozeilenparameter</param> static void Main(string[] args) { #region Verzweigungen und Schleifen int zahl = 3; if (zahl == 0) { //code wenn bedingung erfüllt } else { //code wenn nicht erfüllt } //Kurzform //Inline if-Abfrage - zahl = wenn 3 < 2 true dann 5, sonst 3 zahl = (3 < 2 ? 5 : 3); for (int j = 0; j < 10; j++) //standard for { for (int i = 0; i < 10; i++) { i++; } } for (;; zahl++) //Bereiche sind optional. endlosschleife wäre for (;;) { code } { if (zahl < 10) { break; } } List <int> listOfNumbers = new List <int>(); //___Unterschied List -Array___: /*Array enthält den Speicherplatz des ersten Elements. die darauffolgenden Werte sind in festen darauf folgenden Speicherplätzen * Sie sind fest in der Größe und können nicht nachträglich vergrößert/verklenert werden*/ /*List einhält jedes Element den Speicherplatz der vorhergehenden Elelemnts, den Wert und den Speicherplatz des nachfolgenden Elements * Eine List kann nachträglich in der Größe verändert werden*/ foreach (var item in listOfNumbers ) //foreach geht jedes Element in einem Container (z.B. Liste oder Array) durch { } zielpunkt: //Zielposition für ein goto zahl--; if (zahl > 0) { goto zielpunkt; //springt auf die Position an der "zielpunkt:" erstellt wurde } zahl = 3; switch (zahl) { case 1: //code wenn in zahl die 1 steht break; //break; verhindert das Ausführen weiterer cases case 2: //code wenn in zahl die 1 steht break; default: //code der ausgeführt wird, wenn kein case zutraf break; } Programmzustaende meinProgramm = Programmzustaende.Starting; switch (zahl) { case 1: meinProgramm = Programmzustaende.Starting; break; case 2: meinProgramm = Programmzustaende.Running; break; //beendet switch block case 3: meinProgramm = Programmzustaende.Stopping; break; //fehlt break: wird code bis zum nächsten break ausgeführt! case 4: meinProgramm = Programmzustaende.Stopped; break; default: Console.WriteLine("Unbekannter Zustand"); break; } //Kurzform des Switchblocks meinProgramm = zahl switch { 1 => Programmzustaende.Running, 2 => Programmzustaende.Stopped, 3 => Programmzustaende.Stopping, _ => Programmzustaende.Starting // _ = Default }; #endregion } #endregion #region Methoden #endregion }
static void Main(string[] args) { #region Bedinung if (1 > 2) // testen einen ausdruck TRUE oder FALSE { // wenn 1 grösser ist als 2 } if (1 < 2) { // wenn 1 kleiner als 2 } else { // in jedem anderen fall } if (1 < 2 && 3 > 2) // und verknüpfung { // wenn beide bedinungen erfüllt sind } if (3 > 2 || 1 < 3 && 2 == 2) { } int VariableA; // (bedinung ? true : false) VariableA = (3 < 2 || 5 > 3 ? 5 : 3); switch (VariableA) { case 1: // code wenn variable dem Fall 1 entspricht break; case 2: // code wenn variable dem Fall 2 entspricht break; default: // wenn kein case getroffen wurde break; } Programmzustaende MeineGameEngine = Programmzustaende.Starting; switch (MeineGameEngine) { case Programmzustaende.Starting: break; case Programmzustaende.Running: break; case Programmzustaende.Stopping: break; case Programmzustaende.Stopped: break; case Programmzustaende.Paused: break; default: Console.WriteLine("#79587: Unbekannter systemzustand"); break; } switch (VariableA) { case 1: MeineGameEngine = Programmzustaende.Paused; break; case 2: MeineGameEngine = Programmzustaende.Starting; break; default: MeineGameEngine = Programmzustaende.Stopped; break; } MeineGameEngine = VariableA switch // kurzform erst ab C# in Version 8 { 1 => Programmzustaende.Paused, 2 => Programmzustaende.Starting, _ => Programmzustaende.Stopped }; #endregion #region Schleife int Anfang = 0; while (Anfang < 10) { Anfang++; } do { Anfang--; } while (Anfang > 0); // wanna see me do it again?; for (int counter = 0; counter < 10; counter++) { } for (; ; Anfang++) // die bereiche des for sind alle optional for(;;) ist gültig { if (Anfang > 20) { break; } } List <int> ListofNumbers = new List <int>(); foreach (int item in ListofNumbers) { Console.WriteLine(item); } ListofNumbers = null; do { Anfang--; } while (Anfang > 0); // goto sehr selten verwenden, wenn´s wirklich nicht anderes geht zielpunkt: // zielmarkierung für den goto-sprung Anfang--; if (Anfang > 0) { goto zielpunkt; // auslösung des sprungs } #endregion } }