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