对象初始化器与集合初始化器
对象初始化器让你在 new 的同时直接给属性赋值,不用写一堆 = 赋值语句。集合初始化器可以在 new 的时候直接放元素。
这个特性在写测试数据和 DTO 构造时特别方便。以前要写 new Person(); p.Name = "Tom"; p.Age = 25; 现在一行搞定。嵌套对象也能初始化。
注意事项:1) 对象初始化器在构造函数执行后执行;2) 如果类没有无参构造函数就用不了;3) 集合初始化器要求集合有 Add 方法。
代码示例
// 对象初始化器
var p = new Person
{
Name = "Tom",
Age = 25,
Address = new Address { City = "佛山", Zip = "528000" }
};
// 集合初始化器
var list = new List<int> { 1, 2, 3, 4, 5 };
var dict = new Dictionary<string, int>
{
["apple"] = 1,
["banana"] = 2
};
// 对比:没有初始化器的写法
var p2 = new Person();
p2.Name = "Jerry";
p2.Age = 30;
class Person
{
public string Name { get; set; } = "";
public int Age { get; set; }
public Address Address { get; set; } = new();
}
class Address { public string City { get; set; } = ""; public string Zip { get; set; } = ""; }
学习小结:以上是我学习这个知识点时的笔记和心得。技术学习没有捷径,多写多练多踩坑,自然就掌握了。如果这篇笔记对你有帮助,欢迎继续看看其他文章。