C# Methoden Tutorial

In dieser Lektion sprechen wir über C# Methoden. Ein sehr wichtiges Prinzip bei der Programmierung ist das sogenannte DRY-Prinzip. Es steht für Don’t Repeat Yourself, was soviel bedeutet wie “wiederhole deinen Code nicht”. Mit Methoden können wir eine bestimmte Funktionalität unseres Codes auslagern und immer wieder aufrufen.

Du kannst dir natürlich auch gerne mein Video-Tutorial zum Thema Methoden in C# ansehen:

C# Methoden – Coding mit Jannick

Das ganze hört sich wesentlich komplizierter an als es eigentlich ist. Hier ein Beispiel. Wir schreiben eine Methode, die “Hallo Welt” in die Konsole ausgeben soll. Diese Methode rufen wir dann vom Startpunkt static void Main unseres Programmes auf (Konsolen-Anwendung Visual Studio).

Wir gehen das ganze wieder anhand einer C# Konsolen-Anwendung aus Visual Studio durch.

static void Main(string[] args)
{
  // Wir rufen unsere neue Methode auf
  WriteToConsole();
  
  Console.ReadKey();
}

static void WriteToConsole() 
{
  Console.WriteLine("Hallo Welt");
}

Ein wichtiger Hinweis an dieser Stelle. Vielleicht hast du dich schon gefragt was static bedeuten soll. Wir müssen dafür einmal kurz vorgreifen. C Sharp ist eine objektorientierte Programmiersprache, dass bedeutet das wir mit Objekten arbeiten. An dieser Stelle haben wir aber noch gar keine Objekte und wenn wir Methoden aufrufen wollen ohne ein Objekt zu benutzen, dann müssen wir die Methode als statisch (static) deklarieren. Deshalb steht vor den Methoden static.

Lass dich von dem Hinweis jetzt aber nicht von der eigentlichen Funktionalität der Methoden verwirren. Das Beispiel oben würde, wenn wir das Programm starten, “Hallo Welt” in die Konsole schreiben.

Tipp! Mein C# Intensivkurs: In nur 5 Stunden zum C# Profi werden

Hi, ich bin Jannick. Selbstständiger Softwareentwickler, Online-Dozent und Verfasser der C# Hilfe.

Ich habe einen C# Intensivkurs erstellt, dieser ausgearbeitete Online Videokurs umfasst alle wichtigen Grundlagen und fortgeschrittene Inhalte der C# Programmierung und macht dich innerhalb von nur 5 Stunden zum C# Profi. Spare dir selbst Zeit, Kosten und Mühen.

Mit dem 30 tägigen Geld-zurück-Garantie von Udemy (der größten Plattform für Online-Kurse) hast du nichts zu befürchten, wenn dir der Kurs nicht gefällt, dann kannst du ihn einfach direkt zurückgeben und dir dein hart verdientes Geld zurückholen.

Nach Abschluss des Kurses wirst du eigene C# Anwendungen inklusive grafischer Benutzeroberfläche und Datenbank erstellen können. Das sind Inhalte, die du im Komplettpaket entweder gar nicht oder nur sehr schwer bei YouTube und co. finden kannst. Deshalb erfreut sich der Intensivkurs auch an einer großen Beliebtheit bei den Teilnehmern.

Als Microsoft zertifizierter Entwickler arbeite ich schon seit vielen Jahren selbstständig als Programmierer und bringe bereits mehr als 70.000 Teilnehmern meiner Kurse das Programmieren bei, daher bin ich ein mehr als geeigneter C# Lehrer.

Ein Angebot ohne Limit ist kein Angebot. Für kurze Zeit wurde der Kurs von Udemy stark rabattiert. Schlag jetzt also zu solange der Kurs noch zum Aktionspreis verfügbar ist.


Wir schauen uns jetzt den Aufbau einer Methode an. Sie besteht aus den folgenden Komponenten:

  1. Rückgabewert (hier void)
  2. Name (kann selbst ausgesucht werden)
  3. Parameter (hier keine, leere Klammern hinter dem Methodennamen)

Best-Practice: Gib deinen Methoden Namen die auf deren Funktion hindeuten.

Parameter (Übergabewerte) in Methoden

Die Methoden, die wir oben geschrieben haben würde, wenn sie aufgerufen wird immer den gleichen Satz in die Konsole schreiben, nämlich “Hallo Welt”. Jetzt nehmen wir mal an, dass du aber einen anderen Satz ausgeben möchtest. Es wäre sehr schlechte Arbeit eine neue Methode zu schreiben, die einen anderen Satz ausgibt. Richtig wäre es, deinen Wunsch-Satz als sogenannten Parameter in die Methode zu übergeben. Das schauen wir uns an:

static void Main(string[] args)
{
  // Wir übergeben einen gewünschten Satz (string) als Parameter
  WriteToConsole("Mein Name ist Peter");
  
  Console.ReadKey();
}

static void WriteToConsole(string wishSentence) // <- Hier ist der Parameter
{
  Console.WriteLine(wishSentence); // Ausgegeben wird "Mein Name ist Peter"
}

Wir müssen den Parameter erst einmal in der Methode selbst definieren. Welcher Datentyp soll übergeben werden und wie soll er heißen? Danach können wir die Methoden dann aufrufen und einen gewünschten Wert (muss vom gleichen Datentyp sein wie der Parameter) übergeben. Im Beispiel oben haben wir als Parameter-Datentyp einen string mit dem Namen wishSentence gewählt. Die Methoden rufen wir dann auf und übergeben "Mein Name ist Peter" welches ein string ist.

Eine Methode kann auch mehrere Parameter haben. Wir fügen einfach nach dem ersten Parameter ein Komma ein und fügen der Methode einen zweiten Parameter hinzu:

static void Main(string[] args)
{
  // Zwei Übergabewerte
  LogPersonInfo("Peter", 35); // Beachte das Komma
  
  Console.ReadKey();
}

static void LogPersonInfo(string name, int age) // <- Komma und zweiter Parameter
{
  Console.WriteLine("Persons name is " + name + " and he/she is " + age + " years old");
  // Ausgabe wird sein: Persons name is Peter and he/she is 35 years old
}

Im Beispiel oben haben wir nun wieder eine Methoden, nur mit einem anderen Namen und zwei Parametern anstatt einem. Wir modifizieren die Ausgabe in die Konsole am Ende auch etwas. Wir schreiben einen festen Text und fügen Informationen aus den Parametern in die Ausgabe hinzu (dafür benutzen wir das +).

Aufgabe: Probier es selbst. Erstelle eine Konsolen-Anwendung in Visual Studio und füge deinem Programm eine Methode hinzu und ruf sie auf wenn das Programm startet. Du kannst dich nach den Beispielen von oben richten.

Der Rückgabewert einer Methode

Ich weiß, das Thema ist am Anfang ziemlich einnehmend aber halte durch, hier kommt vorerst die letzte wichtige Information die du unbedingt wissen musst über C Sharp Methoden. Jede Methode kann einen Wert zurückgeben wenn wir es möchten. Vielleicht hast du dich schon gefragt was das Keyword void bedeutet, dass vor jedem Methodennamen steht.

Unsere Methoden oben nutzen bis jetzt alle den Rückgabetyp void. Das bedeutet sie geben nichts zurück denn void heißt so viel wie “nichts”.

Im folgenden Beispiel erstellen wir eine Methode mit einem Rückgabewert vom Datentyp int. Wenn wir einen Wert zurückgeben möchten, dann benutzen wir das Keyword return:

static void Main(string[] args)
{
  int addedValue = Sum(3,5);
  
  Console.WriteLine("Summe ist " + addedValue);
  Console.ReadKey();
}

static int Sum(int x, int y) 
{
  int calculatedResult = x + y;
  return calculatedResult; // Wert zurückgeben
}

Was passiert ist folgendes: Um zwei Werte zu addieren benutzen wir eine selbst geschriebene Methode mit dem Rückgabetyp int, die zwei Parameter vom Datentyp int nimmt. Diese beiden Parameter summieren wir und geben das Resultat dann zurück. Nach der Übergabe wir der Wert von addedValue 8 sein.

Nun ein letztes Beispiel anhand eines bool:

static void Main(string[] args)
{
  bool accessGranted = AllowAccess(16);
  
  Console.WriteLine("Zugriff erlaubt: " + accessGranted");
  Console.ReadKey();
}

static bool AllowAccess(int age) 
{
  if(age < 18)
    return false;
  else
    return true;
}

Die Methoden im Beispiel von oben soll überprüfen ob einem gewissen Alter (int age) Zugriff auf irgendetwas gewährt wird. Ist der Wert von age kleiner als 18, dann soll der Zugriff verwehrt werden (false wird zurückgegeben). Ist der Wert größer als 18 soll der Zugriff erlaubt werden (true wird zurückgegeben). Nach Aufruf der Methode ist der Wert von accessGranted false, denn wir übergeben einen Wert von 16 in die AllowAccess Methode und da 16 kleiner ist als 18 wird der Zugriff verwehrt.

Ich finde, dass an diesem Punkt erstmal genug über C# Methoden gesagt wurde. Wenn du aber noch mehr erfahren möchtest, dann kannst du hier einen Blick in die Offizielle Dokumentation werfen.

C# Methoden sind ein ziemlich komplexes Thema und für Anfänger die größte Hürde. Nimm dir Zeit um probiere am besten selber ein wenig rum. Wenn du ungefähr verstanden hast worum es also bei Methoden geht, dann bist du bereit für die nächste Lektion.

An dieser Stelle kannst du wirklich schon Stolz auf dich selbst sein. Objektorientiertes Programmieren (OOP) ist wirklich kein leichtes Thema und Methoden sind der erste Schritt in die richtige Richtung. Wenn du deinen Erfolg weiter ausbauen möchtest und In-Depth und Best-Practices zu diesem und vielen weiteren Themen erlernen möchtest, dann trag dich in meinen C# Intensivkurs ein. In diesem Videokurs programmieren wir gemeinsam mehrere echte Anwendung die dir den Kursinhalt praktisch vermitteln: