熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Visual Studio 2010自動執行屬性

2013-11-13 10:42:43  來源: .NET編程 

  詳解Visual Studio 中自動執行屬性

在Visual Studio 有不少特性能幫助大家更好更快的完成開發工作本文將介紹的是自動執行屬性

自動執行的屬性能夠讓你迅速指定一個類的屬性不用寫“Get”和“Set”這個屬性的代碼當你為自動執行的屬性寫代碼的時候Visual Basic編譯器自動創建一個私有字段存儲這個屬性的變量此外還創建相關的“Get”和“Set”步驟

采用自動執行的屬性一個屬性(包括一個默認值)可以在一個單個的行中聲明下面的例子顯示了三個屬性的聲明

Public Property Name As String  
Public Property Owner As String = "DefaultName"  
Public Property Items As New List(Of String) From {"M" "T" "W"}  
Public Property ID As New Guid()

一個自動執行的屬性相當於一個屬性值存儲在一個私有字段中的屬性下面代碼例子顯示一個自動執行屬性

Property Prop As String = "Empty"

下面的代碼例子顯示以前自動執行屬性例子的相等的代碼

Private _Prop As String = "Empty"  
Property Prop As String  
Get  
Return _Prop  
End Get  
Set(ByVal value As String)  
_Prop = value  
End Set  
End Property 

支持字段

當你聲明一個自動執行屬性的時候Visual Basic自動創建一個名為“支持字段”的隱藏的私有字段 以容納這個屬性的值這個支持字段名稱是前面有一個加下劃線(_)的自動執行的屬性名稱例如如果你聲明一個自動執行的屬性命名的ID這個支持字段就命名為_ID如果你包含一個名稱也是_ID的你的類的一個編號你就制造了一個命名沖突Visual Basic將報告一個編譯器錯誤

這個支持字段還有下面的特點

* 訪問這個支持字段修飾符總是私有的方式甚至當屬性本身有不同的訪級別(如公共的)的時候也是如此
* 如果屬性標記為共享這個支持字段也是共享的
* 為這個屬性指定的屬性不適用於這個支持字段

支持屬性可以從這個類中的代碼訪問以及從Watch window等調試工具訪問然而這個支持字段在IntelliSense(智能感應)字補全列表中不顯示出來

初始化一個自動執行屬性

能夠用於初始化一個字段的任何表達式對於初始化一個自動執行屬性都是合法的當你初始化一個自動執行屬性的時候這個表達式將被評估並且傳送到這個屬性的Set步驟下面的代碼例子顯示包括初始值的一些自動執行的屬性

Property FirstName As String = "James"
Property PartNo As Integer =  
Property Orders As New List(Of Order)()

你不能聲明一個自動執行的屬性作為一個Structure(結構)的一個成員如果它標記為共享的你才能初始化這個自動執行屬性

當你聲明一個自動執行屬性作為一個組數的時候你可以指定明確的組數邊界然而你可以使用一個組數初始化程序提供一個值如下面的例子所示
Property Grades As Integer() = {
Property Temperatures As Integer() = New Integer() { }需要標准語法的屬性定義

自動執行的屬性是很方便的支持許多編程情況然而有一些情況你不能使用自動執行的屬性必須使用標准的或者擴展的屬性語法

如果你要做下列之情之一你必須使用屬性定義語法

* 向一個屬性的Get或者Set步驟增加代碼如在Set步驟中增加驗證輸入值的代碼例如你也許在設定這個屬性值之前驗證一個字符串這個字符串顯示一個包含要求的數字數量的電話號碼
* 為Get和Set步驟指定不同的訪問性例如你也許要Set步驟是私有的讓Get步驟是公共的
* 創建只寫或只讀的屬性
* 使用參數化屬性(包括默認屬性)你必須聲明一個擴展的熟悉以便為這個屬性指定一個參數或者為Set步驟指定一個額外的參數
* 在支持字段加入一個屬性
* 為支持字段提供XML注釋

擴展一個自動執行的屬性

如果你必須要把一個自動執行的屬性轉變為包含一個Get或者Set步驟的擴展的屬性Visual Basic代碼編輯器能夠自動生成Get和Set步驟以及這個屬性的“End Property”(結束屬性)聲明如果你把這個光標放在屬性聲明後面的空白行中輸入一個G(代表Get)或者一個S(代表Set)並且按下 ENTER鍵這個代碼就生成了當你在屬性聲明結束時按下ENTER鍵的時候Visual Basic代碼編輯器自動生成Get或者Set步驟的只讀和只寫屬性
 


From:http://tw.wingwit.com/Article/program/net/201311/14347.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.