C#自動(dòng)屬性簡(jiǎn)單描述
C# 3.0新語(yǔ)言特性還是比較常見(jiàn)的東西,這里我們主要介紹C#自動(dòng)屬性,包括介紹C# 3.0新語(yǔ)言特性和改進(jìn)包括等方面。
總體來(lái)說(shuō),Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基礎(chǔ)之上,.NET2.0核心本身將不再變化(如果不了解.NET2.0的朋友,請(qǐng)參看MSDN或者一些經(jīng)典的書籍),C# 3.0新語(yǔ)言特性在.NET2.0基礎(chǔ)上進(jìn)行了改進(jìn),這些改進(jìn)的功能可以大大簡(jiǎn)化我們編寫程序。關(guān)于C# 3.0新語(yǔ)言特性在博客園里的很多朋友都介紹了,我在這里簡(jiǎn)單介紹一下,記錄自己所學(xué)的東西,也為后面的LINQ打下基礎(chǔ)。
C# 3.0新語(yǔ)言特性和改進(jìn)包括:
◆自動(dòng)屬性(Auto-Implemented Properties)
◆隱含類型局部變量(Local Variable Type Inference)
◆匿名類型(Anonymous Types)
◆對(duì)象與集合初始化器(Object and Collection Initializers)
◆擴(kuò)展方法(Extension Methods)
◆Lambda表達(dá)式和Lambda表達(dá)式樹 (Lambda Expression and Lambda Expression Trees)
C#自動(dòng)屬性(Auto-Implemented Properties)
C#自動(dòng)屬性可以避免原來(lái)這樣我們手工聲明一個(gè)私有成員變量以及編寫get/set邏輯,在VS2008中可以像下面這樣編寫一個(gè)類,編譯器會(huì)自動(dòng)地生成私有變量和默認(rèn)的get/set 操作。你也可以分別定義get和set的“protected”等訪問(wèn)級(jí)別。
在.Net2.0框架下,我們可以這樣寫一個(gè)User類:
- public class User
- {
- private int _id;
- private string _name;
- private int _age;
- public int Id
- {
- get { return _id; }
- set { _id = value; }
- }
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
- public int Age
- {
- get { return _age; }
- set { _age = value; }
- }
- }
現(xiàn)在,可以這樣簡(jiǎn)化:
- public class User
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int Age { get; set; }
- }
像上面這樣的空的get/set屬性的話,它會(huì)自動(dòng)為你在類中生成一個(gè)私有成員變量,對(duì)這個(gè)變量實(shí)現(xiàn)一個(gè)公開的getter 和setter。我們可以使用.NET開發(fā)環(huán)境所提供的ildasm.exe(IL代碼反匯編器)工具來(lái)分析程序集或者模塊的內(nèi)容。
【編輯推薦】