0Pricing
C# Academy · Lektion

Ausdruckskörper für Member

Schreiben Sie kompakte Properties und Methoden.

Ausdruckskörper für Member ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Eine kompaktere Syntax

Die ausdruckskörperbasierte Syntax verwendet =>, um ein Member als einzelnen Ausdruck zu definieren, und ersetzt damit einen vollständigen { ... }-Rumpf. Dadurch werden kurze Member kompakt und gut lesbar.

using System;

class Greeter
{
    public string Hello() => "Hi there!";
}

class Program
{
    static void Main()
    {
        var g = new Greeter();
        Console.WriteLine(g.Hello());
    }
}

Ausdruckskörperbasierte Methoden

Jede Methode, deren Rumpf aus einem einzelnen Ausdruck besteht, kann => verwenden. Das Ergebnis des Ausdrucks wird zum Rückgabewert.

using System;

class MathHelper
{
    public int Square(int x) => x * x;
    public int Add(int a, int b) => a + b;
}

class Program
{
    static void Main()
    {
        var m = new MathHelper();
        Console.WriteLine(m.Square(6));
        Console.WriteLine(m.Add(3, 4));
    }
}

Ausdruckskörperbasierte schreibgeschützte Eigenschaften

Eine berechnete schreibgeschützte Eigenschaft kann => anstelle von get { return ...; } verwenden.

using System;

class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }
    public double Area => Width * Height;
}

class Program
{
    static void Main()
    {
        var r = new Rectangle { Width = 4, Height = 5 };
        Console.WriteLine("Area: " + r.Area);
    }
}

Ausdruckskörperbasierte get- und set-Accessor

Sie können auch den get- und set-Accessoren jeweils einen eigenen Ausdruckskörper geben. Das ist bei einem Backing-Feld besonders nützlich.

using System;

class Person
{
    private string _name;
    public string Name
    {
        get => _name;
        set => _name = value.Trim();
    }
}

class Program
{
    static void Main()
    {
        var p = new Person();
        p.Name = "  Niki  ";
        Console.WriteLine("[" + p.Name + "]");
    }
}

Berechnete Zeichenfolgen zurückgeben

Ausdruckskörperbasierte Eigenschaften eignen sich besonders für formatierte, abgeleitete Werte wie vollständige Namen oder Beschriftungen.

using System;

class Customer
{
    public string First { get; set; }
    public string Last { get; set; }
    public string Display => First + " " + Last;
}

class Program
{
    static void Main()
    {
        var c = new Customer { First = "Ada", Last = "Lovelace" };
        Console.WriteLine(c.Display);
    }
}

Ausdruckskörperbasierte Member mit Bedingungen

Der einzelne Ausdruck kann einen bedingten (ternären) Operator enthalten, sodass sich die Verzweigungslogik in einer Zeile unterbringen lässt.

using System;

class Account
{
    public decimal Balance { get; set; }
    public string Status => Balance >= 0 ? "OK" : "Overdrawn";
}

class Program
{
    static void Main()
    {
        var a = new Account { Balance = -20m };
        Console.WriteLine(a.Status);
    }
}

Ausdruckskörperbasierte void-Methoden

Auch eine Methode, die eine Aktion ausführt und nichts zurückgibt, kann einen Ausdruckskörper verwenden, wenn die Aktion aus einer einzigen Anweisung besteht.

using System;

class Logger
{
    public void Log(string msg) => Console.WriteLine("[LOG] " + msg);
}

class Program
{
    static void Main()
    {
        var log = new Logger();
        log.Log("Started");
    }
}

Ausdruckskörperbasierte Konstruktoren

Auch ein Konstruktor mit einer einzigen Zuweisung kann die Pfeilsyntax verwenden.

using System;

class Point
{
    public int X { get; }
    public Point(int x) => X = x;
}

class Program
{
    static void Main()
    {
        var p = new Point(7);
        Console.WriteLine("X = " + p.X);
    }
}

Wann Sie die Syntax NICHT verwenden sollten

Ausdruckskörper sind nur für einzelne Ausdrücke geeignet. Wenn Sie mehrere Anweisungen, Schleifen oder Verzweigungen zur Validierung benötigen, verwenden Sie stattdessen einen normalen Blockrumpf.

using System;

class Calculator
{
    // Single expression -> arrow is fine
    public int Triple(int n) => n * 3;

    // Multiple statements -> use a block
    public int SumTo(int n)
    {
        int total = 0;
        for (int i = 1; i <= n; i++) total += i;
        return total;
    }
}

class Program
{
    static void Main()
    {
        var c = new Calculator();
        Console.WriteLine(c.Triple(4));
        Console.WriteLine(c.SumTo(5));
    }
}

Mehrere Ausdruckskörper in einer Klasse kombinieren

Eine kleine Klasse kann für fast jedes Member die Pfeilsyntax verwenden und dadurch den Boilerplate-Code deutlich reduzieren.

using System;

class Temperature
{
    public double Celsius { get; set; }
    public double Fahrenheit => Celsius * 9 / 5 + 32;
    public double Kelvin => Celsius + 273.15;
    public override string ToString() => Celsius + "C";
}

class Program
{
    static void Main()
    {
        var t = new Temperature { Celsius = 25 };
        Console.WriteLine(t + " = " + t.Fahrenheit + "F = " + t.Kelvin + "K");
    }
}

Alles zusammenführen

Verwenden Sie ausdruckskörperbasierte Member für einfache Getter, Hilfsmethoden und einzeilige Methoden, und behalten Sie Blockrümpfe echter Logik vor.

using System;

class Order
{
    public int Quantity { get; set; }
    public decimal UnitPrice { get; set; }
    public decimal Total => Quantity * UnitPrice;
    public bool IsLarge => Quantity > 10;
}

class Program
{
    static void Main()
    {
        var o = new Order { Quantity = 12, UnitPrice = 9.99m };
        Console.WriteLine("Total: " + o.Total + ", Large: " + o.IsLarge);
    }
}

Kurze Überprüfung

Testen Sie Ihr Verständnis von ausdruckskörperbasierten Membern.

Zusammenfassung

Ausdruckskörperbasierte Member verwenden =>, um ein Member mit einem einzelnen Ausdruck zu definieren. Sie funktionieren für Methoden, schreibgeschützte Eigenschaften, einzelne get- und set-Accessor sowie sogar Konstruktoren. Verwenden Sie sie für kompakte Einzeiler; wechseln Sie zu einem Blockrumpf, sobald Sie mehrere Anweisungen benötigen.

using System;

class Demo
{
    public int N { get; set; }
    public int Doubled => N * 2;
    public string Label() => "N is " + N;
}

class Program
{
    static void Main()
    {
        var d = new Demo { N = 9 };
        Console.WriteLine(d.Label() + ", doubled = " + d.Doubled);
    }
}

Häufig gestellte Fragen

Ist die Lektion „Ausdruckskörper für Member“ kostenlos?

Ja — der vollständige Text von „Ausdruckskörper für Member“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ausdruckskörper für Member“?

Schreiben Sie kompakte Properties und Methoden. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Ausdruckskörper für Member“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Automatisch implementierte Properties
  2. Vollständige Properties mit Backing Fields
  3. Ausdruckskörper für Member
  4. Indexer
← Zurück zu C# Academy