天天看點

一起談.NET技術,.NET 3.x新特性之自動屬性及集合初始化

  今天公司弄了個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在現階段還是不可能的,作為程式員學習在學習才是正道。