C#自誕生起就取眾家之長,集萬千寵愛於一身,而且還是名門望族.NET Framwork家族中的一員,可謂天生高貴。編程界的老大哥JAVA,在發展了十幾年後,已經健壯和強大。藉助開源社區的SSH(struts+ spring+hibernate)架構,使得j2ee擁有了無與倫比的魅力。通用性,移植性,可擴充性都得到了很好的支援。每當我們學了SSH之後就會感概,為什麼.NET沒有這麼優秀的架構呢。於是.NET的粉絲們也開發了自己的SH(NSpring+NHibernate)。但這兩個架構和.NET的編程風格總是顯得格格不入,這隻是單純抄襲過來的東西。但是我們也不用太悲觀,C#3.0的出現帶給了我們許多新的特性,至於是什麼新特性呢,我將給大家一一介紹。
第一個新特性:自動產生屬性
通常,我們都要為每個類編寫Get/Set方法來對外提供屬性的訪問和操作。如:
Code
public class UserInfo
{
string userName;
string password;
public UserName
{
get{return userName;}
set{username=value;}
}
public Password
{
get{return password;}
set{return password=value;}
}
}
我們總是很羨慕Eclipse為JAVA的屬性自動產生Geter/Seter方法的功能,雖然Visual Studio也能類似的功能,但用起來還是不夠方便,尤其是當一個類的屬性很多的時候,編寫這些Get/Set方法實在是一件很惱火的事情。而C#3.0的自動產生屬性,終於讓我們擺脫了這個惡夢,而且你會發現它是語言本身的特性,比JAVA的Geter/Seter方法要更簡單,更簡潔,更自然。微軟在細節方面真是下了不少苦功啊。
好了,讓我們來看看使用C#3.0的自動產生屬性編寫上面這個類是怎樣的呢。
Code
public Class UserInfo
{
public string UserName{get;set;}
public string Password{get;set;}
}
我們可以發現,這實在是太輕鬆了。我們只需要在屬性後面加入get/set兩個關鍵字,就實現了以前要寫幾行代碼的方法。.NET Framwork就會為我們自動產生它的私人的屬性。現在使用它和使用上面這個類是一樣的。
Code
UserInfo userInfo=new UserInfo();
userInfo.UserName=”test”;
userInfo.Password=”test”;
如今,我們可以向JAVA的粉絲們炫耀了。呵呵,開個玩笑的。