Operador == (Referencia de C#)
Para los tipo de valor predefinidos, el operador de igualdad (==) devuelve true si los valores de sus operandos son iguales y false en caso contrario.Para los tipos de referencia, excepto string, == devuelve true si sus dos operandos se refieren al mismo objeto.Para el tipo string, == compara los valores de las cadenas.
Comentarios
Los tipos de valor definidos por el usuario pueden sobrecargar el operador == (vea operator (Referencia de C#)).También pueden hacerlo los tipos de referencia definidos por el usuario, aunque, de forma predeterminada, == se comporta como se ha descrito anteriormente tanto para los tipos de referencia predefinidos como para los definidos por el usuario.Si se sobrecarga ==, también se debe sobrecargar !=.Las operaciones en tipos enteros se suelen permitir en enumeraciones.
Ejemplo
class Equality
{
static void Main()
{
// Numeric equality: True
Console.WriteLine((2 + 2) == 4);
// Reference equality: different objects,
// same boxed value: False.
object s = 1;
object t = 1;
Console.WriteLine(s == t);
// Define some strings:
string a = "hello";
string b = String.Copy(a);
string c = "hello";
// Compare string values of a constant and an instance: True
Console.WriteLine(a == b);
// Compare string references;
// a is a constant but b is an instance: False.
Console.WriteLine((object)a == (object)b);
// Compare string references, both constants
// have the same value, so string interning
// points to same reference: True.
Console.WriteLine((object)a == (object)c);
}
}
/*
Output:
True
False
True
False
True
*/