Menu
CoddyTech

Objektinitialisierer

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

Objektinitialisierer bieten eine praktische Möglichkeit, beim Erstellen eines Objekts Eigenschaftswerte festzulegen, ohne einen Konstruktor mit vielen Parametern aufzurufen.

Traditionelle Methode mit Konstruktor

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

Person person = new Person();
person.Name = "Alice";
person.Age = 25;
person.City = "New York";

Verwendung der Objektinitialisierersyntax

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

Objektinitialisierer mit Konstruktoren

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
    
    public Person(string name)
    {
        Name = name;
    }
}

// Der Konstruktor setzt Name, der Initialisierer setzt die anderen Eigenschaften
Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

Verschachtelte Objektinitialisierer

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

Mehrere Objekte mit Initialisierern erstellen

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };
Person person3 = new Person { Name = "Charlie", Age = 35 };

Objektinitialisierer machen den Code übersichtlicher und besser lesbar. Die Eigenschaften werden festgelegt, nachdem der Konstruktor ausgeführt wurde. Du kannst Initialisierer mit oder ohne Konstruktorparameter verwenden, wodurch die Objekterstellung flexibel und kompakt wird.

challenge icon

Aufgabe

Mittel

Erstelle drei Student-Objekte mit verschiedenen Ansätzen zur Objektinitialisierung:

  • student1: Verwende den Standardkonstruktor mit einem Objektinitialisierer, um alle Eigenschaften (Name, StudentId, Major, GPA) aus der Eingabe festzulegen
  • student2: Verwende einen Objektinitialisierer, um nur Name = "Bob" und Major = "Engineering" festzulegen
  • student3: Verwende den Konstruktor mit "Charlie" als Parameter und anschließend einen Objektinitialisierer, um StudentId = 54321, Major = "Mathematics" und GPA = 3.5 festzulegen

Probier es selbst

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        int studentId = int.Parse(Console.ReadLine());
        string major = Console.ReadLine();
        double gpa = double.Parse(Console.ReadLine());
        
        // TODO: Erstelle student1 mit einem Objektinitialisierer und allen Eigenschaften
        // Verwende den Standardkonstruktor und setze Name, StudentId, Major und GPA
        
        // TODO: Erstelle student2 mit einem Objektinitialisierer, der nur Name und Major setzt
        // Name soll "Bob" sein, Major soll "Engineering" sein
        
        // TODO: Erstelle student3 mit dem Konstruktor und dem Namensparameter "Charlie"
        // Verwende dann einen Objektinitialisierer, um StudentId = 54321, Major = "Mathematics" und GPA = 3.5 zu setzen
        
        Console.WriteLine($"Student 1: {student1.Name} (ID: {student1.StudentId}) - {student1.Major}, GPA: {student1.GPA}");
        Console.WriteLine($"Student 2: {student2.Name} (ID: {student2.StudentId}) - {student2.Major}, GPA: {student2.GPA}");
        Console.WriteLine($"Student 3: {student3.Name} (ID: {student3.StudentId}) - {student3.Major}, GPA: {student3.GPA}");
    }
}
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

Übe selbstständig: Online-C#-Compiler