Menu
Coddy logo textTech

Automatisch implementierte Eigenschaften

Teil des Abschnitts Objektorientierte Programmierung der C#-Journey von Coddy — Lektion 10 von 70.

Automatisch implementierte Eigenschaften ermöglichen es Ihnen, Eigenschaften zu deklarieren, ohne explizite dahinterliegende Felder (Backing Fields) zu schreiben. Der Compiler erstellt automatisch im Hintergrund ein verborgenes privates Feld.

Anstatt diesen ausführlichen Code zu schreiben:

public class Product
{
    private string name;
    
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Sie können einfach schreiben:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

Sie können Standardwerte auch direkt in der Deklaration festlegen:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

Automatisch implementierte Eigenschaften sind ideal, wenn Sie keine Validierung oder benutzerdefinierte Logik im Getter oder Setter benötigen. Sie halten Ihre Klassen sauber und reduzieren Boilerplate-Code erheblich.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein einfaches Inventarsystem mit automatisch implementierten Eigenschaften erstellen, um Artikel in einem Geschäft zu verwalten.

Sie werden zwei Dateien erstellen, um Ihren Code zu organisieren:

  • Item.cs: Definieren Sie eine Item-Klasse im Namespace Inventory mit automatisch implementierten Eigenschaften für Name (string), Price (decimal) und InStock (bool). Legen Sie Standardwerte fest: Name sollte standardmäßig auf "Unknown" gesetzt sein, Price auf 0.0m und InStock auf true.
  • Program.cs: Erstellen Sie in Ihrer Hauptdatei zwei Item-Objekte mithilfe von Objektinitialisierern. Lesen Sie den Namen und den Preis für jeden Artikel aus der Eingabe ein und geben Sie dann die Details jedes Artikels aus.

Sie erhalten vier Eingaben:

  • Name des ersten Artikels
  • Preis des ersten Artikels
  • Name des zweiten Artikels
  • Preis des zweiten Artikels

Geben Sie jeden Artikel in diesem Format aus:

Item: {Name}, Price: {Price}, In Stock: {InStock}

Wenn die Eingaben beispielsweise Laptop, 999.99, Mouse und 25.50 sind, sollte die Ausgabe wie folgt aussehen:

Item: Laptop, Price: 999.99, In Stock: True
Item: Mouse, Price: 25.50, In Stock: True

Spickzettel

Automatisch implementierte Eigenschaften ermöglichen es Ihnen, Eigenschaften zu deklarieren, ohne explizite Backing-Felder zu schreiben. Der Compiler erstellt automatisch ein verstecktes privates Feld.

Grundlegende Syntax:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

Standardwerte festlegen:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

Automatisch implementierte Eigenschaften sind ideal, wenn Sie keine Validierung oder benutzerdefinierte Logik im Getter oder Setter benötigen.

Probier es selbst

using System;
using Inventory;

class Program
{
    public static void Main(string[] args)
    {
        // Eingaben für das erste Element lesen
        string name1 = Console.ReadLine();
        decimal price1 = Convert.ToDecimal(Console.ReadLine());
        
        // Eingaben für das zweite Element lesen
        string name2 = Console.ReadLine();
        decimal price2 = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Zwei Item-Objekte mithilfe von Objektinitialisierern erstellen
        // Die Eigenschaften Name und Price aus den Eingabewerten setzen
        
        // TODO: Die Details jedes Elements in folgendem Format ausgeben:
        // Item: {Name}, Price: {Price}, In Stock: {InStock}
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung