共用方式為


Visual Basic 中的運算式

更新:2007 年 11 月

這個主題適用於:

版本

Visual Basic

C#

C++

Web Developer

Express 版

標題適用於 標題不適用於 標題不適用於 標題適用於

Standard 版

標題適用於 標題不適用於 標題不適用於 標題適用於

Pro/Team 版

標題適用於 標題不適用於 標題不適用於 標題適用於

表格圖例:

標題適用於

套用

標題不適用於

不套用

預設會套用主題但隱藏命令

預設隱藏的命令。

Managed 運算式評估工具可接受大部分以 Visual Basic 撰寫的運算式。在 [即時運算] 視窗中,運算式評估工具僅支援單行陳述式。

下列章節提供特定的資訊,並討論一些不支援的運算式類型:

  • 識別項和型別

  • 函式評估

  • 運算子

  • 不支援的關鍵字

  • 字串

  • 轉換

  • TypeOf 運算子

  • 包含內建型別的物件變數

  • 屬性評估

  • WebMethod

  • 變數宣告

Visual Basic 並不支援以有意義的方式來顯示某資料型別內容的自動展開 (Autoexpand) 規則。如需詳細資訊,請參閱顯示自訂資料型別項目

轉換

簡單轉型 (Cast) 可用於偵錯工具內:

A = CStr(B)

函式評估

偵錯工具支援函式的評估,包括多載函式。因此,您可以輸入下列任一運算式,偵錯工具將呼叫多載函式的正確版本:

myFunction (param1)

myFunction (param1, param2)

在偵錯工具呼叫中評估函式,並執行該函式的程式碼。如果函式有副作用,例如配置記憶體或變更全域變數的值,在偵錯工具視窗中評估函式將會變更您的程式狀態,可能會產生非預期的結果。

當您在多載函式上設定一個中斷點時,中斷點的位置視您如何指定函式而定。如果只有指定函式名稱,偵錯工具將在該函式名稱的每個多載上都設定一個中斷點。如果指定完整簽章 (Signature)、函式名稱和完整引數清單,偵錯工具會在指定的多載上設定一個中斷點。

識別項和型別

偵錯工具運算式可以使用任何在目前範圍 (Scope) 中可見的識別項。舉例來說,如果偵錯工具在 Magh 函式內中止,您就可以使用大部分在 Magh 中可見的識別項,包括變數名稱和函式名稱 (不支援區域常數)。您可以設定目前範圍中任何可見之變數的值。

偵錯工具可以正確地顯示任何基本或內建 (Intrinsic) 型別的變數。對於類別型別的變數,偵錯工具會根據衍生最徹底的型別來正確地顯示該值。如果您有一個型別為 Lion 的物件 leo (衍生自 Cat 型別),您可以評估 leo.Clawlength,並取得型別為 Lion 之物件的正確值。

匯入別名

您無法在偵錯工具視窗內使用匯入別名功能。

包含內建型別的物件變數

包含內建變數型別 (例如整數) 的物件變數,會以反直覺式的方式來顯示與提供編輯。例如,假設您的原始程式碼含有如下的物件變數:

Dim obj As Object = 5

[監看式] 視窗會將 obj 變數的值顯示為:

5 {Integer}

若要將此變數的值變更為 6,您可輸入:

6

您不能輸入:

6 {Integer}

在編輯過此值之後,您會注意到偵錯工具已經為您加入 {Integer}。

運算子

偵錯工具會正確地評估大部分的運算子,包括:

  • 算術運算子:( expr1 + expr2、expr1 - expr2、expr1 * expr2、expr1 / expr2、expr1\expr2、expr1^expr2、expr1Modexpr2)。

  • 指派 (Assignment) 運算子:(var1 = expr2、var1 ^= expr2、var1 *= expr2、var1 /= expr2、var1 \= expr2、var1 += expr2、var1 -= expr2、var1 &= expr2)。

  • 比較運算子:(expr2 < expr2、expr2 <= expr2、expr1 > expr2、expr1 >= expr2、expr1 = expr2、expr1 <> expr2)。

  • 串連運算子 (Concatenation Operator):(expr1 & expr2、expr1 + expr2)。

  • 邏輯運算子 (Logical Operator):(expr1 And expr2、expr1 Or expr2、expr1 XOr expr2、expr1 AndAlso expr2、expr1 OrElse expr2、Notexpr1)。

  • 一元 (Unary) 運算子:( - expr1、Not expr1、GetType (type))。

屬性評估

偵錯工具可評估任何變數視窗中的屬性。不過,在偵錯工具內評估屬性可能會產生影響程式結果的副作用,例如變更變數值。若要防止意外評估所產生的副作用,您可以關閉 [一般]、[偵錯]、[選項] 對話方塊中的屬性評估功能。

字串

在 Visual Basic 中,您也可以在字串上使用 Length 運算子:

mystring.Length

-或-

"hello world".Length

TypeOf 運算子

在 Visual Basic 中,您可以在偵錯工具視窗中使用 TypeOf 運算子:

TypeOf expression Is type

例如:

TypeOf Me Is Integer

會顯示 false 值。

如果使用 TypeOf,它必須是使用 Is 之運算式的一部分。如果您使用不含 Is 的 TypeOf,將會看到下列的錯誤訊息:

Is required

不支援的關鍵字

偵錯工具視窗運算式不支援下列 Visual Basic 關鍵字:

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

此外,也不支援任何命名空間 (Namespace) 或模組層級關鍵字,例如 End Sub 或 Module。

變數宣告

您不能在偵錯工具視窗中明確地宣告新的變數。

不過,您可以在 [即時運算] 視窗中指定值給隱含變數。這些隱含變數的範圍限於偵錯工具,並且無法在偵錯工具之外加以存取。例如,陳述式 o = 5 將會隱含地建立新變數 o,並將數值 5 指派給該變數。除非型別能由偵錯工具所推斷,這種隱含變數都屬於 Object 型別。

WebMethod

您不能從偵錯工具視窗中呼叫 WebMethod。

請參閱

其他資源

偵錯工具中的運算式

Visual Basic 參考