方法 : 等価性をテストする

更新 : 2007 年 11 月

次のサンプルは、Managed Extensions for C++ を使用した等価性のテストを、ポインタのポイント先に基づいて行います。

詳細については、「Visual C++ 2005 コンパイラの互換性に影響する変更点」を参照してください。

使用例

// mcppv2_equality_test.cpp
// compile with: /clr:oldSyntax /LD
using namespace System;

bool Test1() {
   String * str1 = S"test";
   String * str2 = S"test";
   return (str1 == str2);
}

このプログラムの IL は、戻り値がこの命令で実装されていることを示します。

  IL_0012:  ceq

上のコードは、2 つの文字列のオブジェクトのアドレスを比較しています。

新しい構文を使用すると次のようになります。

// mcppv2_equality_test_2.cpp
// compile with: /clr /LD
using namespace System;

bool Test1() {
   String ^ str1 = "test";
   String ^ str2 = "test";
   return (str1 == str2);
}

このプログラムの IL は、戻り値が op_Equality への呼び出しを使用して実装されていることを示します。

  IL_0012:  call       bool [mscorlib]System.String::op_Equality(string,
                                                                 string)

参照

その他の技術情報

マネージ型