Visual Basic 6.0 使用者可以進行的屬性程序變更
更新:2007 年 11 月
為了簡化及與其他程式設計語言的互通性 (Interoperability),Visual Basic 2008 更新了屬性程序和參數的宣告。
Visual Basic 6.0
在 Visual Basic 6.0,您可以使用 Property Get、Property Let 和 Property Set 陳述式,取得和設定屬性值。
您可以將屬性參數宣告為 ByRef。傳遞變數至這類參數,可讓程序變更呼叫程式碼中的該變數。
Visual Basic 2008
Visual Basic 2008 加入了統一的屬性宣告語法,其中包含取得及設定屬性值的程序。這麼做可保證 Property 屬性 (Attribute) 的一致性,如存取層級和多載。以下範例會顯示未使用參數之屬性的宣告。
Private monthNum As Integer = 1
Property month() As Integer
Get
Return monthNum
End Get
Set(ByVal Value As Integer)
If Value < 1 Or Value > 12 Then
' Error processing for invalid value.
Else
monthNum = Value
End If
End Set
End Property
您可使用任何想要的名稱做為 Set 的參數名稱。如果您未提供引數,則會自動產生 Value。
由於這個語法變更,使 Property Get 和 Property Set 陳述式變得多餘,因此不再支援這些陳述式。由於 Visual Basic 2008 不允許沒有參數的預設屬性,所以不需要 Property Let 和 Property Set,就能區分是要指派物件參考還是預設屬性。因此,也不再支援 Property Let 陳述式。
Visual Basic 2008 不支援 ByRef 屬性參數。如果屬性程序具有 ByRef 參數,而且變更了對應引數下的變數,則該屬性可能會出現無法預期的行為。因此,參數型屬性的所有宣告都必須為參數指定 ByVal。
請參閱
概念
Visual Basic 6.0 使用者可以進行的預設屬性變更