C# Language
Operatore di uguaglianza
Ricerca…
Tipi di uguaglianza in c # e operatore di uguaglianza
In C #, ci sono due diversi tipi di uguaglianza: uguaglianza di riferimento e uguaglianza di valore. L'uguaglianza di valore è il significato comunemente inteso di uguaglianza: significa che due oggetti contengono gli stessi valori. Ad esempio, due numeri interi con valore 2 hanno l'uguaglianza di valore. L'uguaglianza di riferimento significa che non ci sono due oggetti da confrontare. Invece, ci sono due riferimenti a oggetti, entrambi riferiti allo stesso oggetto.
object a = new object();
object b = a;
System.Object.ReferenceEquals(a, b); //returns true
Per i tipi di valore predefiniti, l'operatore di uguaglianza (==) restituisce true se i valori dei suoi operandi sono uguali, false altrimenti. Per i tipi di riferimento diversi da string, == restituisce true se i suoi due operandi si riferiscono allo stesso oggetto. Per il tipo di stringa, == confronta i valori delle stringhe.
// 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);