C# Language
Opérateur d'égalité
Recherche…
Types d'égalité dans l'opérateur c # et d'égalité
En C #, il existe deux types d'égalité: l'égalité de référence et l'égalité de valeur. L'égalité des valeurs est la signification généralement comprise de l'égalité: cela signifie que deux objets contiennent les mêmes valeurs. Par exemple, deux entiers de la valeur 2 ont une valeur d'égalité. L'égalité de référence signifie qu'il n'y a pas deux objets à comparer. Au lieu de cela, il existe deux références d'objet, toutes deux faisant référence au même objet.
object a = new object();
object b = a;
System.Object.ReferenceEquals(a, b); //returns true
Pour les types de valeur prédéfinis, l'opérateur d'égalité (==) renvoie true si les valeurs de ses opérandes sont égales, false sinon. Pour les types de référence autres que string, == renvoie true si ses deux opérandes font référence au même objet. Pour le type de chaîne, == compare les valeurs des chaînes.
// 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);