VB 10.0 Auto-Implemented Properties
Introduction
Auto-Implemented Properties是VB.NET 10.0的特色之一。讓我們在撰寫屬性時只需短短一行即可,其細部的私有欄位與Get、Set區塊都將由編譯器在編譯時幫我們自動產生。可簡化屬性的撰寫,加速程式撰寫速度。
Support
- VB 10.0 or latter
Auto-Implemented Properties
在以往我們要建立一個屬性時,我們通常會建立個私有欄位用來儲存屬性的值。並會利用Property關鍵字設定屬性區塊,在Get、Set區塊撰寫取值與設值的程式碼。就像是下面這樣:
Private _name As String
Property Name As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
透過VB.NET 10.0的Auto-Implemented Properties功能,我們可以將屬性的撰寫給簡化。像是上面的例子可簡化為像下面這樣:
Property Name As String
短短的一行就可以取代本來冗長的程式,是不是很方便呢?除此之外,Auto-Implemented Properties也可以利用變數初始器來設定屬性的預設值。就像:
Property Name As String = "Larry"
若是使用較為複雜的型別也可以
Property SupplierList() As New List(Of Supplier)
Property OrderList() As New List(Of Order) With {.Capacity = 100}
也可以用在介面屬性的實作上
Property Name() As String Implements ICustomer.Name
注意事項
1.不支援ReadOnly關鍵字
若在Auto-Implemented Properties前面加上ReadOnly關鍵字
ReadOnly Property Name() As String
則編譯器會顯示錯誤
2.不支援WriteOnly關鍵字
若在Auto-Implemented Properties前面加上WriteOnly關鍵字
WriteOnly Property Name() As String
則編譯器會顯示錯誤
3.不支援帶參數的屬性
若在Auto-Implemented Properties設定參數
Property Items(ByVal idx As Integer) As String
則編譯器會顯示錯誤
4.不支援索引器
由於無法支援帶參數的屬性,自然無法支援索引器。