VB.Net学习笔记(变量生存期和赋值)

变量有生存周期

这一点程序员们都了解,在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在后期委托和事件中讲详细描述。