Menu
Coddy logo textTech

Inizializzatori di oggetti

Fa parte della sezione Programmazione orientata agli oggetti del percorso C# di Coddy. Lezione 8 di 70.

Gli inizializzatori di oggetti offrono un modo pratico per impostare i valori delle proprietà quando si crea un oggetto, senza chiamare un costruttore con molti parametri.

Metodo tradizionale usando il costruttore

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";

Usare la sintassi degli inizializzatori di oggetto

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

Inizializzatori di oggetti con costruttori

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

// Il costruttore imposta Name, l'inizializzatore imposta le altre proprietà
Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

Inizializzatori di oggetti annidati

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

Creazione di più oggetti con inizializzatori

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

Gli inizializzatori di oggetti rendono il codice più pulito e leggibile. Le proprietà vengono impostate dopo l'esecuzione del costruttore. Puoi usare gli inizializzatori con o senza parametri del costruttore, rendendo la creazione degli oggetti flessibile e concisa.

challenge icon

Sfida

Medio

Crea tre oggetti Student usando diversi approcci di inizializzazione degli oggetti:

  • student1: usa il costruttore predefinito con un inizializzatore di oggetto per impostare tutte le proprietà (Name, StudentId, Major, GPA) usando i dati inseriti
  • student2: usa un inizializzatore di oggetto per impostare solo Name = "Bob" e Major = "Engineering"
  • student3: usa il costruttore con "Charlie" come parametro, poi usa un inizializzatore di oggetto per impostare StudentId = 54321, Major = "Mathematics", GPA = 3.5

Provalo tu

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: Crea student1 usando un inizializzatore di oggetti con tutte le proprietà
        // Usa il costruttore predefinito e imposta Name, StudentId, Major e GPA
        
        // TODO: Crea student2 usando un inizializzatore di oggetti con solo Name e Major
        // Name deve essere "Bob" e Major deve essere "Engineering"
        
        // TODO: Crea student3 usando il costruttore con il parametro name "Charlie"
        // Poi usa un inizializzatore di oggetti per impostare StudentId = 54321, Major = "Mathematics" e GPA = 3.5
        
        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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C# online