VB.Net變數


變數不過是給程式可以操作的儲存區域的名字。 VB.Net中的每個變數都有一個特定的型別,它決定了變數記憶體的大小和布局; 可以儲存在該儲存器中的值的範圍; 以及可以應用於變數的一組操作。

我們已經討論過各種資料型別。 VB.Net提供的基本值型別可以分為:

編號 變數 範例
1 整體型別 SByte, Byte, Short, UShort, Integer, UInteger, Long, ULongChar
2 浮點型別 SingleDouble
3 十進位制型別 Decimal
4 布林型別 TrueFalse,分配
5 日期型別 Date

VB.Net也允許定義像Enum這樣的其他變數型別的變數,以及像Class這樣的變數的參照型別。將在隨後的章節中討論日期型別和類。

VB.Net變數宣告

Dim語句用於一個或多個變數的變數宣告和儲存分配。Dim語句用於模組,類,結構,過程或塊級別。

VB.Net中的變數宣告的語法是:

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

其中,

  • attributelist - 是適用於變數的屬性列表,這是可選的。
  • accessmodifier - 定義變數的存取級別,它的值為 - PublicProtectedFriendProtected FriendPrivate,這是可選的。
  • Shared - 宣告一個共用變數,它不與任何類或結構的特定範例相關聯,而是可用於類或結構的所有範例,這是可選的。
  • Shadows - 表示該變數在基礎類別中重新宣告並隱藏了一個相同名稱的元素或一組過載元素,這是可選的。
  • Static - 表示變數將保留其值,即使在宣告過程的終止之後,這是可選的。
  • ReadOnly - 表示變數可以被讀取,但不能被寫入,這是可選的。
  • WithEvents - 指定該變數用於響應分配給該變數的範例引發的事件,這是可選的。
  • Variablelist - 提供了所宣告變數的列表。

變數列表中的每個變數都有以下語法和部分:

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

其中,

  • variablename:是變數的名稱
  • boundslist:可選,它提供了一個陣列變數的每個維度的邊界列表。
  • New:可選,它在Dim語句執行時建立類的新範例。
  • datatype:如果Option StrictOn,則為必需。它指定變數的資料型別。
  • 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;

例如,

Dim pi As Double
pi = 3.14159

可以在宣告時初始化變數,如下所示:

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

範例

嘗試使用各種型別的變數的以下範例:

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

左值和右值

有兩種表達方式:

  • 左值:作為左值的表示式可以作為賦值的左側或右側出現。
  • 右值:作為右值的表示式可能出現在賦值的右側,但不是左側。

變數是左值,因此可能出現在任務的左側。數位文字是右值,所以不能分配,不能出現在左邊。 以下是一個有效的語句:

Dim g As Integer = 20

但是,以下不是一個有效的語句,並會產生編譯時錯誤:

20 = g