Kurse:Moderne-C-Charp Class Aufbau

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen

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}.");
    }
}