Einführung


In diesem Tutorial lernst du, wie die Klassen verwenden kannst, um deinen Code sauber zu strukturieren.

Vorbereitung


Öffne Visual Studio und erstelle eine neue Konsolenapplikation (Console Application). Nun wurde das Projekt erstellt und bereits die Program.cs Datei geöffnet. Wird die App mit dem grünen Startbutton (oder mit F5) gestartet, so öffnet sich ein Konsolenfenster und der Code in der Main Method wird aufgerufen.

Auf der Suche nach weiteren C# Tutorials?

Hier entlang

Los geht's!


Klassen haben viele Funktionen und sind deswegen ein sehr wichtiger Bestandteil des Programmierens. Klassen erlauben dir deinen Code aufzuteilen und wiederzuverwenden.

Klassen für Daten-Modelle

Klassen können als Datenobjekte verwendet werden. Erstelle eine neue Klasse. Mache einen Rechtsklick in deinem Solution-Explorer und klicke auf Add -> New Item. Dort wählst du "Class" aus und gibst einen Namen, z.B. "Car", ein.

Nun kannst du in deine Klasse Properties (Variablen) hinzufügen. Füge mal 2 Properties vom Typ string namens "Make" (Automarke) und "Model" (Modell) zu deiner Klasse hinzu.

Hinweis

Tippe "prop" und drücke 2 mal die Tabulator-Taste, um schnell eine neue Property zu erstellen.

Deine Klasse sollte nun etwa so aussehen:

public class Car { public string Make { get; set; } public string Model { get; set; } }
text/x-csharp

So hast du dir einen eigenen Variablentyp erstellt. Du kannst eine neue Instanz von Car mit dem "new"-Keyword erstellen - etwa so:

static void Main(string[] args) { Car car = new Car(); // Neue Instanz (neues leeres Objekt) von Car car.Make = "Maserati"; // Marke angeben car.Model = "MC20"; // Modell angeben Console.WriteLine($"{car.Make} ${car.Model}"); }
text/x-csharp

Du kannst, wenn du eine neue Instanz eines Objekts erstellst auch direkt Properties initialisieren, das geht so:

// Neue Instanz mit properties Car car2 = new Car() { Make = "Maserati", Model = "MC20" };
text/x-csharp

Eine Klasse kann auch Methoden beinhalten. Füge also eine Methode "WriteToConsole" zu deiner Car-Klasse hinzu. Du kannst diese Methode nun bei einer beliebigen Instanz von Car aufrufen.

public void WriteToConsole() { Console.WriteLine($"${Make} ${Model}"); } // Aufrufen car.WriteToConsole();
text/x-csharp

Statische Klassen zum Aufteilen/Gruppieren

Du kannst eine Klasse/Funktion/Property mit dem "static"-Keyword markieren, um sie überall verwenden zu können. Erstelle eine Klasse namens "CarUtility". Schreibe nun das static Keyword vor "class". So kannst du sicherstellen, dass alle Member dieser Klasse statisch sein müssen.

Erstelle nun eine statische Funktion "IsCool", welche einen bool zurückgibt und als Parameter ein Car nimmt.

public static bool IsCool(Car car) { if (car.Make == "Maserati") { return true; } else { return false; } // Dieser Code macht das selbe, wie der obere Code return car.Make == "Maserati"; }
text/x-csharp

Du kannst die Funktion nun aufrufen, indem du CarUtility.IsCool(car) aufrufst, da du die Funktion "IsCool" als static markiert hast.

Console.WriteLine(CarUtility.IsCool(car));
text/x-csharp

Hier rufen wir CarUtility.IsCool auf und geben das Ergebnis direkt in der Konsole aus.

Alle statischen Methoden und Properties können auf diese Weise (KLASSENNAME.MEHODE/PROPERTY) aufgerufen werden. Will man das nicht kann man die Methode/Property nicht als "public" sondern "private" oder "protected" markieren.

Probier das gleich aus! Füge eine private statische Variable zur CarUtility-Klasse hinzu. Nun kannst du statt dem hart-codierten String in unserer IsCool Methode diese Variable verwenden

private static string CoolCarMake = "Maserati"; public static bool IsCool(Car car) { if (car.Make == CoolCarMake) { return true; } else { return false; } // Dieser Code macht das selbe, wie der obere Code return car.Make == CoolCarMake; }
text/x-csharp
Hinweis

Jede Property/Methode, die du in einer statischen Funktion verwenden willst, muss ebenfalls statisch sein.

Du willst Klassen noch besser nutzen?

Klicke hier

Vollständiger Sourcecode


class Program { static void Main(string[] args) { Car car = new Car(); // Neue Instanz (neues leeres Objekt) von Car car.Make = "Maserati"; // Marke angeben car.Model = "MC20"; // Modell angeben Console.WriteLine($"{car.Make} ${car.Model}"); // Neue Instanz mit properties Car car2 = new Car() { Make = "Maserati", Model = "MC20" }; /* Write to console */ car.WriteToConsole(); /* Ist das Auto cool? */ Console.WriteLine(CarUtility.IsCool(car)); } }
text/x-csharp
public class Car { public string Make { get; set; } public string Model { get; set; } public void WriteToConsole() { Console.WriteLine($"${Make} ${Model}"); } }
text/x-csharp
public static class CarUtility { private static string CoolCarMake = "Maserati"; public static bool IsCool(Car car) { if (car.Make == CoolCarMake) { return true; } else { return false; } // Dieser Code macht das selbe, wie der obere Code return car.Make == CoolCarMake; } }
text/x-csharp

Über Digital Dojo

Das Digital Dojo ist der virtuelle Übungsraum von COUNT IT.

Angehende Programmierer*innen, Code-Neulinge, Wiedereinsteiger*innen und Fortgeschrittene finden hier das nötige Rüstzeug für ihre Karriere.

Du möchtest deine Lehre bei COUNT IT starten? Dann bist du hier richtig - besiege deine Gegner im Dojo Game und sichere dir deine Lehrstelle!

Inspire your career.

Newsletter abonnieren

Der COUNT IT Newsletter liefert viermal jährlich interessante Neuigkeiten über das Unternehmen. Gleich anfordern!