[c#] C# 연산자 오버로딩
C#에서는 연산자 오버로딩(operator overloading)을 지원합니다. 이는 클래스나 구조체의 인스턴스에 대해 사용자가 정의한 연산자를 사용할 수 있도록 하는 기능입니다.
연산자 오버로딩의 사용
연산자 오버로딩은 일반적으로 두 가지 방법으로 사용합니다.
- 이미 정의된 연산자를 사용자가 정의한 클래스나 구조체에 대해 새로운 의미로 재정의할 수 있습니다.
- 사용자가 정의한 연산자를 사용하여 특정한 기능을 수행하도록 할 수 있습니다.
사용자가 정의한 연산자 오버로딩
C#에서는 다음 연산자에 대해 오버로딩을 지원합니다.
-
이항 연산자 (+, -, *, /, %, &, , ^, «, », ==, !=, >, <, >=, <=) - 단항 연산자 (-, +, !, ~, ++, –)
코드 예제
다음은 사용자가 정의한 클래스에 대해 덧셈 연산자를 오버로딩하는 예제입니다.
public class MyNumber
{
public int Value { get; set; }
public MyNumber(int value)
{
Value = value;
}
public static MyNumber operator +(MyNumber a, MyNumber b)
{
return new MyNumber(a.Value + b.Value);
}
}
위의 예제에서는 MyNumber
클래스에 +
연산자를 오버로딩하여 사용자가 정의한 방식으로 덧셈 연산이 수행될 수 있도록 하였습니다.