수색…


C # 및 동등 연산자의 동등한 유형

C #에는 두 가지 종류의 평등 즉 참조 평등과 값 평등이 있습니다. 값 평등은 일반적으로 이해되는 평등의 의미입니다. 두 개체가 동일한 값을 포함한다는 의미입니다. 예를 들어, 2의 값을 갖는 두 정수는 값의 동일성을가집니다. 참조 평등은 비교할 두 개의 객체가 없다는 것을 의미합니다. 대신 두 개의 객체 참조가 있으며 둘 다 동일한 객체를 참조합니다.

object a = new object();
object b = a;
System.Object.ReferenceEquals(a, b);  //returns true

미리 정의 된 값 유형의 경우 항등 연산자 (==)는 피연산자의 값이 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 문자열이 아닌 참조 유형 인 경우 ==는 두 피연산자가 동일한 객체를 참조하면 true를 반환합니다. 문자열 유형의 경우 ==는 문자열 값을 비교합니다.

// 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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow