Automatisch implementierte Eigenschaften
Teil des Abschnitts Objektorientierte Programmierung der C#-Journey von Coddy. Lektion 10 von 70.
Automatisch implementierte Eigenschaften ermöglichen es dir, Eigenschaften zu deklarieren, ohne explizite Sicherungsfelder zu schreiben. Der Compiler erstellt im Hintergrund automatisch 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.
Aufgabe
EinfachErstellen wir ein einfaches Inventarsystem, das automatisch implementierte Eigenschaften verwendet, um die Artikel in einem Geschäft zu verfolgen.
Du erstellst zwei Dateien, um deinen Code zu organisieren:
Item.cs: Definiere eineItem-Klasse im NamespaceInventorymit automatisch implementierten Eigenschaften fürName(String),Price(Dezimalzahl) undInStock(bool). Lege Standardwerte fest:Namesoll standardmäßig"Unknown"sein,Price0.0mundInStocktrue.Program.cs: Erstelle in deiner Hauptdatei zweiItem-Objekte mithilfe von Objektinitialisierern. Lies den Namen und den Preis für jeden Artikel aus der Eingabe ein und gib anschließend die Details jedes Artikels aus.
Du erhältst vier Eingaben:
- Name des ersten Artikels
- Preis des ersten Artikels
- Name des zweiten Artikels
- Preis des zweiten Artikels
Gib jeden Artikel in diesem Format aus:
Item: {Name}, Price: {Price}, In Stock: {InStock}Wenn die Eingaben beispielsweise Laptop, 999.99, Mouse und 25.50 lauten, sollte die Ausgabe wie folgt aussehen:
Item: Laptop, Price: 999.99, In Stock: True
Item: Mouse, Price: 25.50, In Stock: TrueProbier 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}
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienNamespaces & DirektivenEinführung in Klassen & ObjekteDas 'this'-SchlüsselwortMethoden und ParameterFelder vs. EigenschaftenKonstruktorenObjektinitialisiererWiederholung – Einfacher Taschenrechner4Vererbung
Grundlegende Vererbungs-(:)-SyntaxDas „base“-Schlüsselwort„virtual“- und „override“-SchlüsselwörterVersiegelte KlassenDie „object“-BasisklasseWiederholung – Mitarbeiterhierarchie7Erweiterte Funktionen
Überladen von OperatorenIndexer (this[])ToString()-ÜberschreibungErweiterungsmethodenRückblick – Benutzerdefinierte Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterThread-sicheres SingletonFactory-MusterObserver-Muster (Events)Strategy-Muster13Abschließende Herausforderungen
E-Learning-PlattformKomponente für SpielfigurenFahrzeugvermietungsdienst2Eigenschaften & statische Member
Automatisch implementierte EigenschaftenNur lesbare/schreibbare EigenschaftenStatische Felder & MethodenStatische KlassenMember mit Ausdruckskörpern5Polymorphie & Interfaces
Compile- vs. Laufzeit-PolymorphieInterface vs. abstrakte KlasseMehrere InterfacesExplizite InterfacesUpcasting & DowncastingWiederholung – Formenrechner3Klassenarchitektur
Instanz- vs. statische DatenSchlüsselwörter 'readonly' & 'const'Backing FieldsRückblick – Bankkontenverwaltung6Kapselung
ZugriffsmodifikatorenEigenschaften zur KapselungImplementierung der DatenkapselungMuster für UnveränderlichkeitRückblick – SchülerdatenÜbe selbstständig: Online-C#-Compiler