方法 : 等価性をテストする
更新 : 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)