小编Hug*_*ist的帖子

为什么这个嵌套对象初始化器抛出一个空引用异常?

以下测试用例在尝试将Id分配给空的对象时抛出空引用异常,因为代码在对象初始值设定项之前缺少"new 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
                          },
                      };
    }
}
Run Code Online (Sandbox Code Playgroud)

c# object-initializers

17
推荐指数
1
解决办法
1513
查看次数

标签 统计

c# ×1

object-initializers ×1