gpt4 book ai didi

c# - 在对象初始值设定项中使用数组初始值设定项时的 NRE

转载 作者:行者123 更新时间:2023-11-30 12:43:48 37 4
gpt4 key购买 nike

<分区>

在以下情况下使用数组初始化程序时,我观察到一些奇怪的行为(在 VS2013 中测试):

    class A
{
public List<int> Items { get; set; }
}

void Main(string[] args)
{
// (1) it compiles, but failing with NRE in runtime
var a = new A { Items = { 1, 2, 3 } };

// (2) it does not compile, as expected
List<int> b = { 1, 2, 3 };
}

实际上,我希望在情况 (1) 中出现编译器错误,这与我在情况 (2) 中遇到的错误相同: 只能使用数组初始化表达式来分配给数组类型。尝试改用新表达式。 但是情况 (1) 编译没有任何问题,并且在运行时预期会失败并出现 NullReferenceException。有人可以解释为什么编译器允许情况 (1) 吗?

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com