.NET/C#
equals() 와 == 차이점 및 예 | ChatGPT
stacknstack
2023. 11. 4. 22:00
728x90
반응형
equals() 와 ==
equals() 메서드와 == 연산자는 두 개의 서로 다른 것을 비교하는 방법으로 사용됩니다.
1. equals() 메서드
equals() 메서드는 객체의 메서드로, 대부분의 클래스에서 Object 클래스로부터 상속받습니다.
equals() 메서드는 두 객체 간의 값(데이터)를 비교하는 데 사용됩니다. 두 객체가 동일한 데이터를 가지고 있는 경우 equals() 메서드가 true를 반환하며, 데이터가 다른 경우 false를 반환합니다.
2. == 연산자
== 연산자는 주로 기본 데이터 유형(primitive types)과 두 개의 참조(참조 타입)를 비교하는 데 사용됩니다.
== 연산자는 기본 데이터 유형에서 값 비교를 수행합니다. 즉, 두 숫자가 동일한 값인 경우 true를 반환하고, 다른 경우 false를 반환합니다.
참조 타입에서 == 연산자는 참조(메모리 위치)를 비교합니다. 즉, 두 객체가 동일한 메모리 위치를 가리키면 true를 반환하고, 다른 위치를 가리키면 false를 반환합니다.
예시
using System;
class MyData
{
public int Value { get; set; }
// Override the Equals method to compare the object's contents
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
MyData other = (MyData)obj;
return Value == other.Value;
}
}
class Program
{
static void Main()
{
MyData data1 = new MyData { Value = 10 };
MyData data2 = new MyData { Value = 10 };
// Using Equals method to compare object contents
bool equalsResult = data1.Equals(data2);
// Using == to compare references
bool referenceResult = data1 == data2;
Console.WriteLine("Using Equals method: " + equalsResult); // true
Console.WriteLine("Using == operator: " + referenceResult); // false (different references)
data2 = data1; // Assign data1's reference to data2
// Using == to compare references
referenceResult = data1 == data2;
Console.WriteLine("Using == operator after assignment: " + referenceResult); // true (same reference)
}
}
출처 | ChatGPT
728x90
반응형