变量有生存周期
这一点程序员们都了解,在 VB.Net 中增加了一个修饰 Shared 。 Shared 关键字指示一个或多个被声明的编程元素将被共享。要点是:共享元素不关联于某类或结构的特定实例。需要通过使用类名或结构名称或者类或结构的特定实例的变量名称限定共享元素来访问它们。简单的描述就是 Shared 变量是为类型本身服务而不是为特定对象服务的。
** Shared ** ** 举例 **
Public Class TestA
Public Shared i As Int32 = 10
End Class
Public Class TestB
Inherits TestA ' 继承 TestA
Public Sub New ()
TestA.i = 100 ' 使用类型的名字进行访问 Shared 变量
End Sub
End Class
要注意的是,在 VB.Net 中 Shared 变量与类型和实例的关系在语法上要求似乎并不特别严格,程序员可以使用类型的实例来访问并修改 Shared 变量,但在 C# 中要求就很严谨了。
赋值语句
在 VB.Net 中赋值语句分为:简单赋值语句、复合赋值语句、委托赋值语句、 Mid 赋值语句。
简单赋值语句
简单赋值语句和以前的 VB 赋值语句基本上没有太大的区别,只是现在 VB.Net 允许对变量声明后就立即赋值了(在前面可访问性举例可以看到示例)。我们需要关注的是数组的声明和赋值方法。
在 VB.Net 中你可以在声明数组时同时描述数组的纬度和上限,且每一个数组的纬度的下限都是 0 ,不可以改变。但可以通过将数组的上限指定为 -1 来指定“零长度数组”。这种数组不包含任何元素。
如果不显示的描述数组的长度,你可以在声明数组的同时立即赋值。
** 数组的声明和赋值举例 **
Public Class TestA
Dim iArr() As Int32
Dim bArr(5) As Boolean '5 是指 bArr 下标的上限,即可以有 6 个元素
Dim lArr() As Long = New Long (3) {100, 200, 300, 400}
Dim cArr() As String = New String () {"A", "B", "C"}
Dim dArr(-1) As Double
End Class
关于数组的更多特性,在后期关于数组的介绍中将详细阐述。
复合赋值
现在 VB.Net 开始支持复合赋值语句。与完全展开的表达式不同,复合赋值语句左侧的变量仅计算一次。这意味着在运行时,变量表达式先于赋值语句右侧的表达式计算。
** 复合赋值举例 **
Public Class TestA
Public Sub New ()
Dim i As Int32
i += 10
End Sub
End Class
Mid 赋值
Mid 赋值实际上是字符串的处理赋值过程。通过以下的举例可以了解 Mid 的赋值方式。
** Mid ** ** 举例 **
Public Class TestA
Public Sub New ()
Dim TmpStr As String
TmpStr = "Hello VB.Net" ' Hello VB.Net
Mid(TmpStr, 7, 2) = "c#" ' Hello c#.Net
Mid(TmpStr, 7) = "VB6" ' Hello VB6Net
Mid(TmpStr, 7) = "VB6 to VB.Net" ' Hello VB6 to
Mid(TmpStr, 7, 3) = "VB6 to VB.Net" 'Hello VB6 to
End Sub
End Class
关于委托语句的关键字 AddressOf 在后期委托和事件中讲详细描述。