在下面的示例中,我正在努力弄清楚 List 发生了什么:
public class DataObject
{
    public List<object> SomeObjects { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        var dataObj = new DataObject()
                          {
                              SomeObjects = { new object() },
                          };
        Console.ReadKey();
    }
}
创建dataOjb显然失败,因为该SomeObjects属性尚未实例化。我假设没有编译错误,因为DataObject可能有一个实例化的构造函数SomeObjects。鉴于此,如果我尝试执行以下操作:
List<int> SomeObjects;
SomeObjects = {1, 2, 3, 4};
这显然不起作用,也没有:
List<int> SomeObjects = new List<int>();
SomeObjects = {1, 2, 3, 4};
所以要解决我的实际问题,在第一个对象初始化程序中调用的是什么(我试过查找但找不到它),为什么它的行为不同,还有其他地方可以像这样使用吗?