Инициализатор объектов имеет фигурные {}
скобки.
Инициализаторы объектов позволяют присваивать значения всем доступным полям и свойствам во время создания. Синтаксис инициализатора объекта позволяет задавать аргументы конструктора или опускать их (включая скобки).
В приведенных ниже двух примерах результат один. При создании экземпляра объекта вызывается конструктор по умолчанию, после чего срабатывает сам инициализатор.
Example instance = new Example { field1 = value1, field2 = value2 };
Example instance = new Example() { field1 = value1, field2 = value2 };
Также есть возможность присваивать значения всем полям и свойствам без необходимости указания имен оных. Такой вариант возможен только при условии, что класс реализует интерфейс IEnumerable
. Ниже приведен пример.
Example instance = new Example { value1, value2 };
Инициализация анонимных типов позволяет задавать readonly
авто-свойства без необходимости указания типа. В примере ниже создан объект анонимного типа c двумя свойствами только для чтения.
var anonymous = new { Property1 = value1, Property2 = value2 };
Resources | |
---|---|
[Инициализаторы объектов С# \ | Microsoft Docs](https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers) |