2024-04-22 · C# 基础 · 学习笔记

对象初始化器与集合初始化器

对象初始化器让你在 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; } = ""; }
学习小结:以上是我学习这个知识点时的笔记和心得。技术学习没有捷径,多写多练多踩坑,自然就掌握了。如果这篇笔记对你有帮助,欢迎继续看看其他文章。