如何:测试相等性

更新:2007 年 11 月

在下面的示例中,将根据指针所指对象使用 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

该指令对两个 String 对象的地址进行比较。

使用 new 语法,

// 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)

请参见

其他资源

托管类型