Visual Basic 变量

变量不过是给程序可以操作的存储区域的名字。VB 中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可以存储在该存储器中的值的范围; 以及可以应用于变量的一组操作。

我们已经讨论过各种数据类型。 VB 提供的基本值类型可以分为:

编号变量示例
1整体类型SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong 和 Char
2浮点类型Single 和 Double
3十进制类型Decimal
4布尔类型True 或 False
5日期类型Date

VB 也允许定义像 Enum 这样的其他变量类型的变量,以及像 Class 这样的变量的引用类型。将在随后的章节中讨论日期类型和类。


VB 中的变量声明

Dim 语句用于一个或多个变量的变量声明。

Dim 语句用于模块,类,结构,过程或块级别。

VB 中的变量声明的语法是:

  1. [ < attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]]
  2. [ ReadOnly ] Dim [ WithEvents ] variablelist

其中,

  • attributelist - 可选,是适用于变量的属性列表。
  • accessmodifier - 可选,定义变量的访问级别,其值为 - PublicProtectedFriendProtected FriendPrivate
  • Shared - 可选,声明一个共享变量,它不与任何类或结构的特定实例相关联,而是可用于类或结构的所有实例,这是可选的。
  • Shadows - 可选,表示该变量在基类中重新声明并隐藏了一个相同名称的元素或一组重载元素。
  • Static - 可选,表示变量将保留其值,即使在声明过程的终止之后。
  • ReadOnly - 可选,表示变量可以被读取,但不能被写入。
  • WithEvents - 可选,指定该变量用于响应分配给该变量的实例引发的事件。
  • Variablelist - 提供了所声明变量的列表。

变量列表中的每个变量都有以下语法和部分:

  1. variablename[ ( [ boundslist ] ) ] [ As [ New ] datatype ] [ = initializer ]
  • variablename:是变量的名称
  • boundslist:可选,它提供了一个数组变量的每个维度的边界列表。
  • New:可选,它在 Dim 语句运行时创建类的新实例。
  • datatype:如果 Option Strict 为 On,则为必需。它指定变量的数据类型。
  • initializer:如果未指定 New,则为可选项。在创建时评估并分配给变量的表达式。

这里显示了一些有效的变量声明及其定义:

  1. Dim StudentID As Integer
  2. Dim StudentName As String
  3. Dim Salary As Double
  4. Dim count1, count2 As Integer
  5. Dim status As Boolean
  6. Dim exitButton As New System.Windows.Forms.Button
  7. Dim lastTime, nextTime As Date

VB 变量初始化

变量被初始化(赋值),后面跟着一个常量表达式。初始化的一般形式是:

实例
  1. Dim pi As Double
  2. pi = 3.14159

可以在声明时初始化变量,如下所示:

  1. Dim StudentID As Integer = 100
  2. Dim StudentName As String = "Bill Smith"

实例

尝试使用各种类型的变量的以下实例:

  1. Module variablesNdataypes
  2. Sub Main()
  3. Dim a As Short
  4. Dim b As Integer
  5. Dim c As Double
  6. a = 10
  7. b = 20
  8. c = a + b
  9. Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c)
  10. Console.ReadLine()
  11. End Sub
  12. End Module

结果如下:

  1. a = 10, b = 20, c = 30

接受来自用户的值

System 命名空间中的 Console 类提供了一个 ReadLine 函数,用于接受来自用户的输入并将其存储到变量中。

  1. Dim message As String
  2. message = Console.ReadLine

以下实例演示如何使用上述功能:

  1. Module variablesNdataypes
  2. Sub Main()
  3. Dim message As String
  4. Console.Write("Enter Message: ")
  5. message = Console.ReadLine
  6. Console.WriteLine()
  7. Console.WriteLine("Your Message: {0}", message)
  8. Console.ReadLine()
  9. End Sub
  10. End Module

当上面的代码被编译和执行时,会产生如下结果(假设用户输入:"Hello World")

  1. Enter Message: Hello World
  2. Your Message: Hello World

左值和右值

有两种表达方式:

  • 左值:作为左值的表达式可以作为赋值的左侧或右侧出现。
  • 右值:作为右值的表达式可能出现在赋值的右侧,但不是左侧。

变量是左值,因此可能出现在任务的左侧。数字文字是右值,所以不能分配,不能出现在左边。 以下是一个有效的语句:

  1. Dim g As Integer = 20

但是,以下不是一个有效的语句,并会产生编译时错误:

  1. 20 = g