Kurse:Moderne-C-Charp Class Aufbau: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
// via Wikitext Extension for VSCode |
// via Wikitext Extension for VSCode |
||
| Zeile 112: | Zeile 112: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuelle Version vom 7. September 2025, 03:57 Uhr
Aufbau einer modernen C#-Klasse
Eine Klasse bündelt Daten (Eigenschaften) und Verhalten (Methoden). Modernes C# nutzt file-scoped Namespaces, Auto-Properties, required/init, Expression-bodied Members, Events und optional Primärkonstruktoren (C# 12).
Minimales Gerüst
namespace MeineApp;
public class Person
{
public required string Name { get; init; }
public int Alter { get; set; }
public void Begruessen() => Console.WriteLine($"Hallo, mein Name ist {Name}.");
}
Maximales Gerüst
namespace MeineApp.Models;
public class Person
{
// Primärkonstruktor (ab C# 12)
public Person(string name, int alter)
{
Name = name;
Alter = alter;
}
// Auto-Properties mit required und init
public required string Name { get; init; }
public int Alter { get; set; }
// Event
public event EventHandler? Begruesst;
// Expression-bodied Member
public string Info => $"{Name} ({Alter} Jahre)";
// Methode mit Event-Auslösung
public void Begruessen()
{
Console.WriteLine($"Hallo, mein Name ist {Name}.");
Begruesst?.Invoke(this, EventArgs.Empty);
}
// Statische Factory-Methode
public static Person Erstellen(string name) => new(name, 0);
}
Klassisches Klassen-Formular
namespace MeineApp.Classic
{
public class Person
{
private string _name;
private int _alter;
public Person(string name, int alter)
{
_name = name;
_alter = alter;
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public int Alter
{
get { return _alter; }
set { _alter = value; }
}
public void Begruessen()
{
Console.WriteLine("Hallo, mein Name ist " + _name + ".");
}
}
}
Praxis: Gemachte Form
namespace MeineApp.Praxis;
public class Person
{
public required string Name { get; init; }
public int Alter { get; set; }
public string Beruf { get; set; } = "Unbekannt";
public void Begruessen()
{
Console.WriteLine($"Hallo, ich bin {Name}, {Alter} Jahre alt und arbeite als {Beruf}.");
}
public void GeburtstagFeiern()
{
Alter++;
Console.WriteLine($"Alles Gute zum Geburtstag, {Name}! Du bist jetzt {Alter}.");
}
}