Compartilhar via


C# 3.0 - 新功能 - Object Initializers

C# 3.0 為了簡化物件的初始化,可以直接在建構子後面指定屬性的值。

以程式來說明會更清楚:

// 原來程式的寫法為:

Customer c = new Customer(1);
c.Name = "台灣微軟";
c.City = "台北市";

// Object initializers 可以將程式改寫為:
Customer c = new Customer(2) { Name = "台灣微軟", City = "台北市" };

兩個程式碼比較後,後者真的簡潔許多。

 

完整的程式碼範例如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NewLanguageFeatures
{
    public class Customer
    {
        public int CustomerId { get; private set; }

        public string Name { get; set; }
        public string City { get; set; }

        public Customer(int Id)
        {
            CustomerId = Id;
        }

        public override string ToString()
        {
            return Name + "\t" + City + "\t" + CustomerId;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //Customer c = new Customer(1);
            //c.Name = "台灣微軟";
            //c.City = "台北市";

            // Object initializers 可以將程式改寫為:
            Customer c = new Customer(2) { Name = "台灣微軟", City = "台北市" };

            Console.WriteLine(c);
        }
    }
}

 

執行結果:

台灣微軟        台北市  2
Press any key to continue . . .

 

筆者使用的環境:Windows 2008 RC0 English + Visual Studio 2008