今天公司弄了個VS2008 beta 2中文版,雖然很大一部分是為了JS的智能提示外,也應該好好的溫習一下.NET的一些新特性,由于以前寫過一些文章,但是都沒有系統的學過,都隻是嘗一下新鮮感。不知道從那開始,是以今天就來看看自動話屬性,以及對象初始化和集合初始化的一些新特性。
1.自動屬性
在做一個程式是我們離不開屬性,特别是實體類。我們用指頭一個一個的敲着get和set及局部的變量(Fields),現在可好不用在重複敲那些東東了我們隻要用到get和set,就和我們的接口聲明差不多了,是不是很happy。
OK看個例子先,在.NET 2.0下我們聲明一個實體類要有如下做法,這個應該沒什麼意見吧。
public class Person {
private string firstName;
private string lastName;
private int age;
public string FirstName {
get {
return this.firstName;
}
set {
this.firstName = value;
}
public string LastName {
get {
return this.lastName;
this.lastName = value;
public int Age {
return this.age;
this.age = value;
在.NET 3.x中我們可以省了很多東東,代碼也變得簡單很多,代碼如下:
public string FirstName {
get; set;
public string LastName {
public int Age {
2.對象的初始化
我們省了很多的代碼,手指也少動了,沒辦法人總是越來越懶的嗎,下面我們來看看對象的初始化也是簡單了不少,看代碼就知道了,代碼如下:第一個代碼是.NET2.0中的初始化方式,而第二個是.NET 3.x的初始化方式,當然.NET2.0的方式也适合3.x的版本。
//.NET 2.0:
Person person = new Person();
person.FirstName = "小兵";
person.LastName = "網魂";
person.Age = 23;
//.NET 3.x:
Person person = new Person { FirstName = "小兵", LastName = "網魂", Age = 23}
3.集合的初始化
其實我們寫程式也是封裝在封裝來為我們節省更多的東東,複用更多的東東。微軟為我們做的也是越來越多,這是這篇文章的最後一個主題就是集合的初始化,我麼一起來對照一下。
//.NET 2.0;
List<Person> people = new List<Person>();
people.Add( new Person { FirstName = "小兵", LastName = "網魂", Age = 23 });
people.Add( new Person { FirstName = "QQing", LastName = "Lai", Age = 22 });
people.Add( new Person { FirstName = "Xbing", LastName = "My", Age = 20 });
//.NET 3.x;
List<Person> people = new List<Person> {
new Person { FirstName = "小兵", LastName = "網魂", Age = 23 },
new Person { FirstName = "QQing", LastName = "Lai", Age = 22 },
new Person { FirstName = "Xbing", LastName = "My", Age = 20 }
};//記得這邊是要有";"的,不然就會出錯的
OK以上就是我們今天所溫習的一個簡單的特性,利用它們我們可以很簡單的來書寫實體類了,雖然在程式中完全支援.NET 3.x在現階段還是不可能的,作為程式員學習在學習才是正道。