Skip to content
On this page

对象初始化器

  • C# 对象初始化器是一种语法结构,它允许在创建对象时为其设置初始值。
  • 使用对象初始化器,可以在创建对象的同时为对象的属性或字段赋值,而不需要显式地调用属性或字段的赋值语句。
  • 对象初始化器提供了一种简洁的方法来初始化对象,并且可以提高代码的可读性和可维护性。
csharp
/// <summary>
/// 定义一个 Person 类
/// </summary>
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建一个 Person 对象,并使用初始化器初始化其成员变量
        Person person = new Person { Name = "张三", Age = 20 };
    }
}

在上面的例子中,我们首先定义了一个 Person 类,该类具有 NameAge 两个属性。接着我们创建了一个 Person 对象,并使用对象初始化器来初始化其成员变量。

  • 对象初始化器使用花括号 {} 包裹一组用逗号 , 分隔的属性赋值表达式。
  • 每个属性赋值表达式由属性名称和值组成,中间用赋值运算符 = 连接。
  • 对象初始化器中可以指定对象的任意公有成员变量和属性,甚至可以嵌套对象初始化器,以初始化对象的子对象。
csharp
/// <summary>
/// 定义一个 Address 类
/// </summary>
public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

/// <summary>
/// 定义一个 Person 类,其中包含一个 Address 对象
/// </summary>
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Address Address { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建一个 Person 对象,并使用嵌套对象初始化器初始化其 Address 对象
        Person person = new Person
        {
            Name = "张三",
            Age = 20,
            Address = new Address
            {
                Street = "长安街",
                City = "北京"
            }
        };
    }
}

在上面的例子中,我们定义了一个 Address 类和一个包含 Address 对象的 Person 类。我们创建了一个 Person 对象,并使用嵌套对象初始化器初始化其 Address 对象。

注意

  • 对象初始化器只能用于在创建对象时初始化成员变量和属性,不能用于其他地方。
  • 使用对象初始化器初始化对象时,需要保证所有必需的属性都被正确地初始化。