IsTrue 演算子 (Visual Basic)

式が True かどうかを判別します。

コード内で IsTrue を明示的に呼び出すことはできませんが、Visual Basic コンパイラはそれを使用して OrElse 句からコードを生成できます。 クラスまたは構造体を定義し、その型の変数を OrElse 句で使用する場合は、そのクラスまたは構造体で IsTrue を定義する必要があります。

コンパイラは、IsTrueIsFalse の演算子を "対応するペア" と見なします。 つまり、そのいずれかを定義する場合は、もう一方も定義する必要があります。

コンパイラでの IsTrue の使用

クラスまたは構造体を定義したら、その型の変数を ForIfElse IfWhile ステートメント、または When 句で使用できます。 これを行う場合、条件をテストできるように、型を Boolean 値に変換する演算子がコンパイラで必要になります。 適切な演算子が次の順序で検索されます。

  1. クラスまたは構造体から Boolean への拡大変換演算子。

  2. クラスまたは構造体から Boolean? への拡大変換演算子。

  3. クラスまたは構造体の IsTrue 演算子。

  4. Boolean から Boolean? への変換を含まない Boolean? への縮小変換。

  5. クラスまたは構造体から Boolean への縮小変換演算子。

Boolean または IsTrue 演算子への変換を定義していない場合、コンパイラはエラーを通知します。

注意

IsTrue 演算子は "オーバーロード" できます。つまり、オペランドがあるクラスまたは構造体の型を持っているときに、そのクラスまたは構造体はその動作を再定義できます。 コードで、そのようなクラスまたは構造体に対してこの演算子が使用される場合は、再定義された動作を理解していることを確認してください。 詳細については、「 Operator Procedures」を参照してください。

次のコード例では、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

関連項目