Example:
class Foo
{
public Bar Bar { get; set; }
}
class Bar
{
public string Name { get; set; }
}
...
{
var foo = new Foo
{
Bar = { Name = "abc" } // run-time error
};
}
Why does C# allow that kind of assignment? IMO, it makes no sense but easier to cause bugs.