等価・不等価演算子
値が等しいかどうか(値の等価性・不等価性)を比較するには、等価演算子=
および 不等価演算子<>
を使用します。
独自に定義した型の場合、演算子のオーバーロードを行わないと等価演算子・不等価演算子で等価性を比較することはできません。 独自型の比較方法や等価演算子のオーバーロード方法については等価性の定義と比較を参照してください。
関係演算子
値の大小関係を比較するには、関係演算子<
, >
および<=
, >=
を使用します。
独自に定義した型の場合、演算子のオーバーロードを行わないと関係演算子で大小関係を比較することはできません。 独自型の比較方法や関係演算子のオーバーロード方法については大小関係の定義と比較を参照してください。
文字列の比較
大文字小文字を無視した比較の方法など、文字列の比較については文字列の探索・比較 §.比較 (CompareTo, Equals, Compare)および文字列と比較オプション・カルチャの並べ替え規則で詳しく解説しています。
等価演算子と代入
等価演算子=
は代入演算子としても動作します。 CやC#のように等価演算子==
と代入演算子=
を使い分けることができないため、条件式と代入式を記述する場合には注意が必要です。 例えば次のような式a = b = c
は、「条件式 b = c の結果を a に代入する」と解釈されます。 「c の値を b と a に代入する」とは解釈されません。
従って、Option Strict Onの場合は条件式b = c
がBoolean型の値となるためその値をInteger型変数であるa
には代入できず、コンパイルエラーとなります。 Option Strict Offの場合は条件式b = c
の結果はFalse
となるため、FalseをInteger型に変換した値である0
がa
に代入されます。
演算子=
はこのような動作となるため、Ifステートメントなど条件式を記述する箇所では演算子=
に代入の動作を行わせることはできません。 次の例のように、Whileステートメントの条件式においてメソッドを呼び出し、その結果を代入した上で比較を行う、といったことはVBではできません。 他の言語で記述されたコードをVBに書き換える際には注意が必要です。