HOW TO:測試是否相等
更新: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
此指令會比較這兩個 String 物件的位址。
使用新的語法:
// 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)