Передача параметра в объект в фигурных скобках во время создания экземпляра в C#
при передаче переменной в объект во время создания экземпляра, например в
SomeObject newObject = new SomeObject() { SomeString = "String goes here" };
будет ли переменная SomeString доступна в конструкторе или будет назначена впоследствии? Если бы мне нужно было использовать его в конструкторе, он работал бы или мне нужно было бы передать его в качестве параметра, используя
new SomeObject("String goes here");
2 ответов
будет ли переменная SomeString доступна в конструкторе или будет назначена впоследствии?
Он будет назначен.
SomeObject newObject = new SomeObject() { SomeString = "String goes here" };
примерно эквивалентен / синтаксический сахар:
SomeObject temp = new SomeObject();
temp.SomeString = "String goes here";
SomeObject newObject = temp;
Он будет назначен в первом случае. Примечание: Для этого требуется конструктор без параметров, который будет существовать по умолчанию, если не определен конструктор с параметрами. В этом случае необходимо явно определить оба конструктора.
для более подробной информации вы можете посмотреть детали на Инициализаторы Объектов.