当前位置:编程学习 > VB >>

VB.NET 的新特点:变量,类型,数组,属性(3)

 

 

Class Class1

private field

Private m_Name As String

public property

Public Property Name As String

Get

Return m_Name

End Get

Set

If Value <> "" Then Value is intrinsic variable

m_Name = Value

End If

End Set

End Property

End Class

 

请注意Set块中包含了内部变量Value。VisualBasic.NET用这个内部变量向你在Set块中的属性实现传递了由客户制定的属性值。另外,在Visual Basic.NET中,程序员不再会有何时应使用Set属性,而何时应使用Let属性的困惑了。

 

一个属性一定是ReadWrite, ReadOnly, 或 WriteOnly的。上面的例子演示了ReadWrite的属性。下面的例子将演示如何创建ReadOnly和 WriteOnly的属性。

ReadOnly property has Get but no Set

Public ReadOnly Property FullName as String

Get

Return m_FirstName & " " &m_LastName

End Get

End Property

WriteOnly property has Set but no Get

Public WriteOnly Property Password as String

Set

m_Password = Value

End Set

End Property

 

请注意,当你省略了Get块或Set块时,你一定要使用ReadOnly或WriteOnly关键字

索引属性和默认属性

 

一个属性可以被指定一个或多个索引。这可以使属性具有数组的特点。请看下面的类:

Class Class1

Private m_Names As String() = {"Ted", "Fred", "Jed"}

an indexed property

Readonly Property Item(Index As Integer) As String

Get

Return m_Names(Index)

End Get

End Property

End Class

 

在客户端,你可以用下面的例子访问Item属性。

Dim obj As New Class1

Dim s1 String

s1 = obj.Item(0)

 

如果把这个例子作进一步的改进,你可以把一个索引属性标记为类的默认属性。为了实现这一点,只要把Default关键字加到上一个例子中就可以了,就像这样:

Default Readonly Property Item(Index As Integer)…

 

一旦你为一个索引属性标记了Default关键字,客户端的代码就可以省略属性的名字而使用对象引用,就像使用一个数组一样。

Dim obj As New Class1

Dim s1 String

s1 = obj(0)

 

请注意,对于默认属性有一个重要的限制,即非索引属性不可以被标记为默认属性。这个限制在Visual Basic.NET中体现了出来,因为你不可以用Set语句来指定一个对象引用。既然Set语句不再被Visual Basic.NET所支持,那么非索引的默认属性将导致无法解决的多义性问题。

 

小结

正如你所见到的那样,在许多方面Visual Basic.NET都与它以前的版本不同。它具有更高的一致性和类型安全级别。另外,用Visual Basic.NET我们更容易写出控制性、可读性很高的代码。虽然它有时要求你习惯于那些编译时额外的检查,但它将在你测试和调试时,为你节约宝贵的时间。

 

好消息是Visual Basic已经被改成了一种更好、更强有力的语言。而坏消息是在Visual Basic 6.0下编写的软件需要做很多工作才可以被移植到Visual Basic.NET下。

 

 

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,