C# Language
Jämställdhetsoperatör
Sök…
Jämställdhetsslag i c # och jämställdhetsoperatör
I C # finns det två olika typer av jämlikhet: referensjämlikhet och värdejämlikhet. Värdejämlikhet är den vanligtvis förståda betydelsen av jämställdhet: det betyder att två objekt innehåller samma värden. Till exempel har två heltal med värdet 2 värdejämlikhet. Referensjämlikhet innebär att det inte finns två objekt att jämföra. Istället finns det två objektreferenser, som båda refererar till samma objekt.
object a = new object();
object b = a;
System.Object.ReferenceEquals(a, b); //returns true
För fördefinierade värdetyper returnerar jämställdhetsoperatören (==) sant om värdena på dess operander är lika, i annat fall falskt. För andra referenstyper än sträng returnerar == true om dess två operander refererar till samma objekt. För strängtypen jämför == värdena på strängarna.
// 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);
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow