VB.Net - 变量

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

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

Type示例
Integral typesSByte,Byte,Short,UShort,Integer,UInteger,Long,ULong和Char
Floating point types单身和双人
Decimal types十进制
Boolean types真或假值,已分配
Date types日期

VB.Net还允许定义其他值类型的变量枚举和参考类型的变量,例如.我们将在后续章节中讨论日期类型和类.

VB.Net中的变量声明

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

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

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

其中,

  • 属性列表 是适用于该变量的属性列表.可选.

  • accessmodifier 定义变量的访问级别,其值为 -  Public,受保护,朋友,受保护的朋友和私人.可选.

  • 共享 声明一个共享变量,该变量与任何特定的a实例无关类或结构,可用于类或结构的所有实例.可选.

  • 阴影 表示该变量重新声明并隐藏了一个名称相同的元素,或者基类中重载元素的集合.可选.

  • 静态 表示变量将保留其值,即使在后终止时宣布它的程序.可选.

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

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

  • 变量列表 提供声明的变量列表.

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

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

其中,

  • variablename : 是变量的名称

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

  • : 可选的.当Dim语句运行时,它会创建类的新实例.

  • 数据类型 : 如果Option Strict为On,则为必需.它指定变量的数据类型.

  • 初始化程序 : 如果未指定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;

例如,

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

Lvalues和Rvalues

有两种表达式:

  • 左值 : 作为左值的表达式可能显示为作业的左侧或右侧.

  • rvalue &minus ;作为右值的表达式可能出现在赋值的右侧但不是左侧.

变量是左值等等可能出现在作业的左侧.数字文字是右值,因此可能无法分配,也不能出现在左侧.以下是有效的陈述 :

Dim g As Integer = 20

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

20 = g