Como: Testar a igualdade
No exemplo a seguir, um teste de igualdade usando extensões gerenciadas para C++ baseia-se em que os ponteiros de ponto.
Para obter mais informações, consulte Quebrar alterações no compilador de 2005 Visual C++.
Exemplo
// 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);
}
O IL para este programa mostra que o valor retornado é implementado com essa instrução:
IL_0012: ceq
que compara os endereços dos dois objetos String.
Usando a nova sintaxe,
// mcppv2_equality_test_2.cpp
// compile with: /clr /LD
using namespace System;
bool Test1() {
String ^ str1 = "test";
String ^ str2 = "test";
return (str1 == str2);
}
O IL para este programa mostra que o valor retornado é implementado com uma telefonar para op_Equality.
IL_0012: call bool [mscorlib]System.String::op_Equality(string,
string)