C# Language
Gelijkheidsexploitant
Zoeken…
Gelijkheidstypen in c # en gelijkheidsoperator
In C # zijn er twee verschillende soorten gelijkheid: referentiegelijkheid en waardegelijkheid. Waarde-gelijkheid is de algemeen begrepen betekenis van gelijkheid: het betekent dat twee objecten dezelfde waarden bevatten. Twee gehele getallen met de waarde 2 hebben bijvoorbeeld waarde-gelijkheid. Referentiegelijkheid betekent dat er geen twee objecten zijn om te vergelijken. In plaats daarvan zijn er twee objectverwijzingen, die beide naar hetzelfde object verwijzen.
object a = new object();
object b = a;
System.Object.ReferenceEquals(a, b); //returns true
Voor vooraf gedefinieerde waardetypes retourneert de operator gelijkheid (==) true als de waarden van de operanden gelijk zijn, anders false. Voor andere referentietypen dan tekenreeks, geeft == true als de twee operanden naar hetzelfde object verwijzen. Voor het stringtype vergelijkt == de waarden van de strings.
// 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);