IsTrue 運算子 (Visual Basic)
判斷運算式是否為 True。
您無法在程式碼中明確呼叫 IsTrue,但 Visual Basic 編譯器 (Compiler) 可利用它從 OrElse 子句產生程式碼。如果定義類別或結構,然後在 OrElse 子句中使用該型別的變數,則必須在該類別或結構上定義 IsTrue。
編譯器會將 IsTrue 和 IsFalse 運算子視為「相符的配對」。這表示如果定義其中一個,也必須定義另一個。
IsTrue 的編譯器用途
定義類別或結構後,可在 For、If、ElseIf 或 While 陳述式中,或在 When 子句中,使用該型別的變數。如果您這麼做,編譯器會要求運算子將型別轉換成 Boolean 值,如此它才能測試條件。它會依下列順序搜尋適當的運算子:
從類別或結構至 Boolean 的擴展轉換運算子。
從類別或結構至 Boolean? 的擴展轉換運算子。
類別或結構上的 IsTrue 運算子。
不涉及從 Boolean 到 Boolean? 之轉換的 Boolean? 縮小轉換。
從類別或結構至 Boolean 的縮小轉換運算子。
如果您尚未定義任何 Boolean 轉換,或 IsTrue 運算子,編譯器會發出錯誤信號。
注意事項 |
---|
IsTrue 運算子可以「多載」,也就是,當運算元具備類別或結構的類型時,該類別或結構就可以重新定義其行為。如果您的程式碼在這種類別或結構上使用此運算子,就一定要先瞭解其重新定義的行為。如需詳細資訊,請參閱 運算子程序 (Visual Basic)。 |
範例
下列程式碼範例所定義的結構大綱包含 IsFalse 和 IsTrue 運算子的定義。
Public Structure p
Dim a As Double
Public Shared Operator IsFalse(ByVal w As p) As Boolean
Dim b As Boolean
' Insert code to calculate IsFalse of w.
Return b
End Operator
Public Shared Operator IsTrue(ByVal w As p) As Boolean
Dim b As Boolean
' Insert code to calculate IsTrue of w.
Return b
End Operator
End Structure