VB.Net - 变量

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

我们已经讨论了各种数据类型。 VB.Net 中提供的基本值类型可分为以下几类: −

类型 示例
整数类型 SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong and Char
浮点类型 Single and Double
十进制类型 Decimal
布尔类型 指定的 True 或 False 值
日期类型 Date

VB.Net 还允许定义其他值类型的变量,如 Enum 和变量的引用类型,如 Class。 我们将在后续章节中讨论日期类型和类。

VB.Net 中的变量声明

Dim语句用于一个或多个变量的变量声明和存储分配。 Dim 语句用于模块、类、结构、过程或块级别。

VB.Net 中变量声明的语法是 −

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

其中,

  • attributelist 是适用于变量的属性列表。 可选。

  • accessmodifier 定义变量的访问级别,其值为 - Public、Protected、Friend、Protected Friend 和 Private。 可选。

  • Shared 声明一个共享变量,该变量不与类或结构的任何特定实例关联,而是可供该类或结构的所有实例使用。 可选。

  • Shadows 指示变量在基类中重新声明并隐藏同名元素或重载元素集。 可选。

  • Static 指示变量将保留其值,即使在声明该变量的过程终止后也是如此。 可选。

  • ReadOnly 表示该变量可以读取,但不能写入。 可选。

  • WithEvents 指定该变量用于响应分配给该变量的实例引发的事件。 可选。

  • Variablelist 提供声明的变量列表。

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

variablename[ ( [ boundslist ] ) ] [ As [ New ] datatype ] [ = initializer ]

其中,

  • variablename − 是变量的名称

  • boundslist − 可选。 它提供数组变量每个维度的边界列表。

  • New − 可选。 当 Dim 语句运行时,它会创建该类的一个新实例。

  • datatype − 如果"Option Strict"打开,则为必需。 它指定变量的数据类型。

  • initializer − 如果未指定 New,则可选。 创建变量时计算并分配给该变量的表达式。

此处显示了一些有效的变量声明及其定义 −

Dim StudentID As Integer
Dim StudentName As String
Dim Salary As Double
Dim count1, count2 As Integer
Dim status As Boolean
Dim exitButton As New System.Windows.Forms.Button
Dim lastTime, nextTime As Date

VB.Net 中的变量初始化

变量通过等号后跟常量表达式进行初始化(分配值)。 初始化的一般形式是 −

variable_name = value;

for example,

Dim pi As Double
pi = 3.14159

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

Dim StudentID As Integer = 100
Dim StudentName As String = "Bill Smith"

示例

尝试以下使用各种类型变量的示例 −

Module variablesNdataypes
   Sub Main()
      Dim a As Short
      Dim b As Integer
      Dim c As Double
      
      a = 10
      b = 20
      c = a + b
      Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c)
      Console.ReadLine()
   End Sub
End Module

当上面的代码被编译并执行时,会产生以下结果 −

a = 10, b = 20, c = 30

接受用户的值

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

Dim message As String
message = Console.ReadLine

下面的例子演示了这一点 −

Module variablesNdataypes
   Sub Main()
      Dim message As String
      Console.Write("Enter message: ")
      message = Console.ReadLine
      Console.WriteLine()
      Console.WriteLine("Your Message: {0}", message)
      Console.ReadLine()
   End Sub
End Module

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

Enter message: Hello World   
Your Message: Hello World

lvalue 和 rvalue

有两种表达方式 −

  • lvalue − 作为左值的表达式可以出现在赋值的左侧或右侧。

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

变量是左值,因此可能出现在赋值的左侧。 数字文字是右值,因此不能被赋值,也不能出现在左侧。 以下是有效的声明 −

Dim g As Integer = 20

但是以下不是有效的语句,会生成编译时错误 −

20 = g