Why does this nested object initializer throw a null reference exception?
问题 The following testcase throws a null-reference exception, when it tries to assign Id to an object which is null, since the code is missing the "new R" before the object initializer. Why is this not caught by the compiler? Why is it allowed, in which use-cases would this be a meaningful construct? [TestClass] public class ThrowAway { public class H { public int Id { get; set; } } public class R { public H Header { get; set; } } [TestMethod] public void ThrowsException() { var request = new R {