Передача параметра в объект в фигурных скобках во время создания экземпляра в C # - PullRequest
9 голосов
/ 31 мая 2011

Когда вы передаете переменную в объект во время создания экземпляра, например, в

SomeObject newObject = new SomeObject() { SomeString = "String goes here" };

Будет ли переменная SomeString доступна в конструкторе или будет назначена впоследствии? Если бы мне нужно было использовать его в конструкторе, сработало бы или мне нужно было передать его в качестве параметра, используя

new SomeObject("String goes here");

Ответы [ 2 ]

13 голосов
/ 31 мая 2011

Будет ли переменная SomeString доступна в конструкторе, или она будет назначена позже?

Она будет назначена позже.

SomeObject newObject = new SomeObject() { SomeString = "String goes here" };

примерно эквивалентен / синтаксический сахар:

SomeObject temp = new SomeObject();
temp.SomeString = "String goes here";
SomeObject newObject = temp;
4 голосов
/ 31 мая 2011

Это будет назначено впоследствии в первом случае. ПРИМЕЧАНИЕ. Для этого необходим конструктор без параметров , который будет существовать по умолчанию, если вы не определите параметризованный конструктор.В этом случае вы должны явно определить оба конструктора.

Более подробно вы можете посмотреть детали Инициализаторов объектов .

...