如何:测试相等性
更新: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)