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