[c#] 제네릭을 이용한 관계 연산자 오버로딩
제네릭을 사용하여 관계 연산자를 오버로딩하는 방법에 대해 알아보겠습니다.
제네릭(Generic) 클래스 생성
먼저, 제네릭 클래스를 생성합니다. 다음은 제네릭을 이용한 클래스의 기본 구조입니다.
public class MyGenericClass<T>
{
private T data;
public MyGenericClass(T parameter)
{
this.data = parameter;
}
// 기타 메서드 및 속성들
}
위의 예시에서 MyGenericClass
는 T
라는 제네릭 타입을 받아들이는 클래스입니다.
관계 연산자 오버로딩
이제 해당 클래스에 관계 연산자를 오버로딩합니다. 다음은 관계 연산자를 오버로딩하는 예시입니다.
public class MyGenericClass<T>
{
// 클래스 내용 생략
public static bool operator ==(MyGenericClass<T> obj1, MyGenericClass<T> obj2)
{
return obj1.data.Equals(obj2.data);
}
public static bool operator !=(MyGenericClass<T> obj1, MyGenericClass<T> obj2)
{
return !obj1.data.Equals(obj2.data);
}
}
위의 예시에서 ==
와 !=
연산자를 오버로딩하여 두 객체의 data
를 비교하고 있습니다.
사용 예시
이제 이를 사용하여 제네릭 클래스를 만들고 관계 연산자를 이용할 수 있습니다. 다음은 사용 예시입니다.
MyGenericClass<int> obj1 = new MyGenericClass<int>(10);
MyGenericClass<int> obj2 = new MyGenericClass<int>(10);
if (obj1 == obj2)
{
Console.WriteLine("obj1과 obj2는 같습니다.");
}
else
{
Console.WriteLine("obj1과 obj2는 다릅니다.");
}
위의 예시에서 두 객체를 생성하고 ==
연산자를 이용하여 두 객체의 값이 같은지를 비교하고 있습니다.
결론
제네릭을 이용하여 관계 연산자를 오버로딩하는 방법에 대해 알아보았습니다. 이를 응용하여 다양한 데이터 타입에 대해 관계 연산자를 오버로딩하여 사용할 수 있습니다.
참고 문헌: Microsoft Docs - 연산자 오버로딩 문법