экзотический код C#
- Алик Ким
- 22 сент. 2022 г.
- 1 мин. чтения
Век живи - век учись!
var b = new B
{
A = { MyProperty = 123 }
};
если что, это - валидный код C#
какое то время назад встретил подобное в проекте, над которым работал, не понял, как такое возможно.
сейчас, вот , выяснил, оказывается , это - фича языка Nested Initializer
В данном случае будет работать, если A уже проинициализировано в конструкторе класса B.
много дивного на свете!
public class A
{
public int MyProperty { get; set; }
}
public class B
{
public A A { get; set; } = new A();
}
static void Main(string[] args)
{
var b = new B
{
A = { MyProperty = 123 }
};
Console.WriteLine(b.A.MyProperty);
Console.WriteLine("DONE");
}
Comentarios