問:真的有必要用 C# 3.0 嗎?
答:可以不用,但我們不能忽視它的好處。
-------- 以下是我給的一個例子 --------------------------
只有開始編碼,你才能體會 C# 3.0 的優雅。
對比下面分別用 C# 2.0 和 3.0 寫的同一個類型效果,你感覺到了什嗎?代碼變得更加簡潔,沒有了屬性和其關聯欄位間的重複勞動,也可以少寫幾個 "無聊" 的構造方法。或許很多人對文法簡化持保留意見(包括我本人),但不可否認 3.0 的文法更利於維護,當我們臃腫的的工程代碼從 50000 行縮減到 20000 行時,那麼它所帶來的就不僅僅是少敲鍵盤這麼點好處了。
C# 2.0 class User
{
private string name;
private int age;
private List<string> interest;
public User()
{
interest = new List<string>();
interest.Add("讀書");
interest.Add("上網");
}
public User(string name, int age) : this()
{
this.name = name;
this.age = age;
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public List<string> Interest
{
get { return interest; }
}
}
// Invoke
User user = new User("tom", 21);
C# 3.0 class User
{
public User()
{
Interest = new List<string> { "讀書", "上網" };
}
public string Name { get; set; }
public int Age { get; set; }
public List<string> Interest { get; private set; }
}
// Invoke
var user = new User
{
Name = "tom",
Age = 21,
};
我的工程中還出現了 CharExtension、StringExtension,甚至是 ObjectExtension 這樣的 Mixin,至於 Lambda、Anonymous types、Linq 自不必多說。