共用方式為


Visual Basic 中的運算式

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

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

  • Casts

  • Dynamic Objects

  • Function Evaluation

  • Identifiers and Types

  • Import Aliases

  • Object Variables Containing Intrinsic Types

  • Operators

  • PropertyEvaluation

  • Strings

  • TypeOf Operator

  • Unsupported Keywords

  • Variable Declarations

  • WebMethods

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

轉換

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

A = CStr(B)

動態物件

運算式評估工具可以評估以靜態方式設為動態型別的變數。它也可以評估實作 IDynamicObject 介面的物件。在 [監看式] 視窗中評估實作 IDynamicObject 介面的物件時,會加入 [動態檢視] 節點。[動態檢視] 節點會顯示物件成員,但不允許編輯成員的值。

不支援下列動態物件功能:

  • 複合運算子 +=、-=、%=、/= 和 *=

  • 許多轉型,包括數字轉型和型別引數轉型

  • 具兩個以上引數的方法呼叫

  • Getter 屬性具有兩個以上的引數

  • 具有引數的 Setter 屬性

  • 指派給索引子

  • 布林運算子 && and ||

函式評估

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

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}。

運算子

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

  • Arithmetical operators: ( 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 operators: (expr1& expr2, expr1+ expr2).

  • Logical operators: (expr1And expr2, expr1Or expr2, expr1XOr expr2, expr1AndAlso expr2, expr1OrElse expr2, Notexpr1).

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

屬性評估

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

字串

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

mystring.Length

-或-

"hello world".Length

TypeOf 運算子

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

TypeOf expressionIs 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 語言參考