共用方式為


Visual Basic 中的運算式

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

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

  • 轉型

  • 動態物件

  • 函式評估

  • 識別項和類型

  • 匯入別名

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

  • 運算子

  • PropertyEvaluation

  • 字串

  • TypeOf 運算子

  • 不支援的關鍵字

  • 變數宣告

  • WebMethod

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

轉型

簡單轉型可用於偵錯工具中:

A = CStr(B)

動態物件

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

以下是不支援的動態物件功能:

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

  • 多種轉型,包括數值轉型和類型引數轉型

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

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

  • 具有引數的 setter 屬性

  • 指派給索引子

  • 布林運算子 && 和 ||

函式評估

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

myFunction (param1)

myFunction (param1, param2)

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

當您在多載函式上設定中斷點時,中斷點的位置取決於您指定函式的方式。 如果您只有指定函式名稱,偵錯工具將在該函式名稱的每個多載上設定一個中斷點。 如果您指定完整簽章、函式名稱和完整引數清單,偵錯工具就會在指定的多載上設定一個中斷點。

識別項和類型

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

偵錯工具可以正確顯示基本或內建類型的任何變數。 對於 class 類型的變數,偵錯工具會根據最具衍生性的類型正確顯示值。 如果您擁有 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 )。

  • 指派運算子:(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)。

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

  • 邏輯運算子:(expr1And expr2、expr1Or expr2、expr1XOr expr2、expr1AndAlso expr2、expr1OrElse expr2、Notexpr1)。

  • 一元運算子:(- 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 之運算式的一部分。 如果您使用 TypeOf 但未使用 Is,將會收到下列錯誤訊息:

Is required

不支援的關鍵字

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

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

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

變數宣告

您無法在偵錯工具視窗中明確宣告新的變數。

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

WebMethod

您無法從偵錯工具視窗呼叫 WebMethod。

請參閱

其他資源

偵錯工具中的運算式

Visual Basic 語言參考