.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
반응형