Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Khởi tạo đối tượng (Object Initializer) trong C#

Object Initializer là cú pháp cho phép gán giá trị cho các thuộc tính/field của đối tượng ngay tại thời điểm tạo instance, sử dụng dấu ngoặc nhọn { }. Giúp code ngắn gọn, không cần gọi constructor có tham số hoặc gán từng dòng sau khi new.

Cú pháp

var obj = new MyClass { Prop1 = value1, Prop2 = value2, ... };

Ví dụ với lớp Employee

Employee empDetails = new Employee()
{
    EID = 10,
    EmpName = "Tim",
    EmpDept = "Finance"
};

// Truy cập
Console.WriteLine(empDetails.EmpName);  // "Tim"

Mã nguồn hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        Employee empDetails = new Employee()
        {
            EID = 10,
            EmpName = "Tim",
            EmpDept = "Finance"
        };
        
        Console.WriteLine(empDetails.EID);
        Console.WriteLine(empDetails.EmpName);
        Console.WriteLine(empDetails.EmpDept);
    }
}

public class Employee
{
    public int EID { get; set; }
    public string EmpName { get; set; }
    public string EmpDept { get; set; }
}

Kết quả

10
Tim
Finance

So sánh: Constructor vs Object Initializer

CáchCodeƯu điểm
Constructornew Employee(10, "Tim", "Finance")Validate, bắt buộc field, immutable
Object Initializernew Employee { EID=10, ... }Linh hoạt, dễ đọc, optional properties

Lưu ý

  • Chỉ hoạt động với property/field có set accessible (public, internal).
  • Thứ tự gán không quan trọng.
  • Có thể lồng nhau: new Order { Customer = new Customer { Name = "A" } }.
  • Kết hợp với Collection Initializer: new List { new Employee { Name = "A" } }.