Следующий тестовый сценарий генерирует исключение с помощью NULL-ссылки, когда он пытается назначить Id объекту, который является нулевым, поскольку в коде отсутствует "новое R" перед инициализатором объекта.
Почему это не поймано компилятором? Почему это разрешено, в каких случаях это будет значимой конструкцией?
[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
{
Header =
{
Id = 1
},
};
}
}