刚开始机房重构的时候,首先敲的是实体层,不知道里边的代码为什么那么写,有个词——Property,后来了解到那是属性过程的使用。
VB.NET Property过程也称属性访问器
属性过程是操作模块、类或结构上的自定义属性的一系列 Visual Basic 语句,VB.NET Property过程也称为“属性访问器”。Visual Basic 提供了以下属性过程:
Get 过程返回属性值。在表达式中访问属性时将调用此过程。
Set 过程将属性设置为某个值,包括对象引用。将一个值赋给属性时,它将被调用。
通常VB.NET Property过程使用 Get 和 Set 语句成对定义,但是如果该属性为只读 (Get 语句) 或只写 (Set 语句 (Visual Basic)),则可以独立定义过程。可以定义类、结构和模块中的属性。默认情况下,属性为 Public,这意味着在可以访问该属性的容器的应用程序中,可以从任何位置调用它们。
声明语法
声明每个参数的方法与声明 Sub 过程 的方法相同,但传递机制必须是 ByVal。参数列表中每个参数的语法如下所示:
[Optional] ByVal [ParamArray]
parametername As datatype
如果该参数是可选的,也必须提供默认值作为声明的一部分。指定默认值的语法如下所示:
Optional ByVal parametername
As datatype = defaultvalue
属性值
通过引用属性,可以隐式调用VB.NET Property过程。除了必须提供所有非可选参数的值,以及必须用括号将参数列表括起来以外,使用属性名的方法与使用变量名一样。如果未提供任何参数,则也可以选择省略括号。隐式调用 Set 过程的语法如下所示:
propertyname[(argumentlist)]
= expression
隐式调用 Get 过程的语法如下所示:
lvalue = propertyname
[(argumentlist)]
Do While (propertyname
[(argumentlist)] > expression)
声明与调用阐释
下面的属性将一个全名存储为两个组成全名的名称(名字和姓氏)。当调用代码读取 fullName 时,Get 过程将姓名的两个组成部分组合在一起,并返回全名。当调用代码赋予一个新的全名时,Set 过程尝试将其分割为姓名的两个组成部分。如果它没有找到空格,则将其存储为名字。
Visual Basic
Dim firstName, lastName As String
Property fullName() As String
Get
If lastName = "" Then
Return firstName
Else
Return firstName & " " & lastName
End If
End Get
Set(ByVal Value As String)
Dim space As Integer = Value.IndexOf(" ")
If space < 0 Then
firstName = Value
lastName = ""
Else
firstName = Value.Substring(0, space)
lastName = Value.Substring(space + 1)
End If
End Set
End Property
下面的示例演示了对VB.NET Property过程的典型调用。
Visual Basic
fullName = "MyFirstName
MyLastName"
MsgBox(fullName)