C# Создать объект со свойствами типа объекта по умолчанию - PullRequest
4 голосов
/ 16 июня 2020

предположим, что у меня есть это:

public class University
{
    public string Name { get; set; } 
    public Adress Adress { get; set; }
    public Countings Countings { get; set; }
}

public class Adress
{
    public string Street { get; set; }
    public string City { get; set; }
    public string Postalcode { get; set; }
}

public class Countings
{
    public int studentCount { get; set; }
    public int profCount { get; set; }
}

Теперь я хочу иметь новый объект University со всеми свойствами с их значением по умолчанию:

var university = new University();

Как я могу убедиться что свойства Adress и Countings также созданы, а не просто null?

С уважением!

Ответы [ 2 ]

4 голосов
/ 16 июня 2020

Установите их с помощью инициализаторов. Вы можете сделать это в конструкторе по умолчанию, но обычно проще всего сделать это в объявлении свойства:

public class University
{
    public string Name { get; set; } = "";
    public Adress Adress { get; set; } = new Adress();
    public Countings Countings { get; set; } = new Countings();
}

public class Adress
{
    public string Street { get; set; } = "";
    public string City { get; set; } = ""
    public string Postalcode { get; set; } = "";
}

Обратите внимание, что типы значений (например, int уже имеют значение по умолчанию, которое не может быть нулевым), поэтому если значение по умолчанию для studentCount или profCount не является чем-то другим, кроме 0, нет необходимости инициализировать эти свойства. По умолчанию они автоматически будут равны нулю.

2 голосов
/ 16 июня 2020

Это должно работать:

public class University
{
    public string Name { get; set; } 
    public Adress Adress { get; set; } = new Adress();
    public Countings Countings { get; set; } = new Countings();
}

Вы также можете инициализировать их в ctor:

public class University
{
    public string Name { get; set; } 
    public Adress Adress { get; set; }
    public Countings Countings { get; set; }

    public University()
    {
        this.Adress = new Adress();
        this.Countings = new Countings();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...