[c#] C# 오버로딩을 통한 높은 확장성
C#은 오버로딩을 통해 메소드와 연산자를 다양한 매개변수 형식으로 구현할 수 있는 높은 확장성을 제공합니다. 이는 매우 유용하며 코드의 가독성을 향상시키고 재사용성을 높일 수 있습니다.
메소드 오버로딩
메소드 오버로딩은 같은 이름의 메소드를 여러 개 정의하는 것을 말합니다. 이때 메소드 시그니처(매개변수 형식 및 개수)가 다르면 동일한 이름의 메소드를 생성할 수 있습니다. 이는 메소드의 목적에 따라 다양한 매개변수 형식으로 메소드를 호출할 수 있어 편의성을 제공합니다.
아래는 메소드 오버로딩의 예시입니다.
class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public double Add(double a, double b)
{
return a + b;
}
}
위의 예시에서 Calculator
클래스는 Add
메소드를 두 번 오버로딩하여 정수형과 실수형 매개변수를 각각 받을 수 있도록 구현하였습니다.
연산자 오버로딩
C#은 연산자 오버로딩을 지원하여 사용자 정의 데이터 형식에 대한 연산자 동작을 재정의할 수 있습니다. 이는 데이터 형식 간에 사용자 정의 동작을 추가하거나 변경할 수 있는 강력한 기능으로, 코드의 가독성을 높일 뿐만 아니라 재사용성을 향상시킵니다.
아래는 연산자 오버로딩의 예시입니다.
public static Box operator +(Box box1, Box box2)
{
Box result = new Box();
result.length = box1.length + box2.length;
result.width = box1.width + box2.width;
result.height = box1.height + box2.height;
return result;
}
위의 예시에서 Box
클래스는 +
연산자를 오버로딩하여 두 상자를 더하는 동작을 정의하였습니다.
C#의 오버로딩을 이용하면 메소드와 연산자를 다양한 매개변수 형식으로 구현하여 높은 확장성을 제공할 수 있습니다.
참고 문헌:
- Microsoft. “메소드 오버로드(C# 프로그래밍 가이드)” Microsoft 문서. https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/method-overloading
- Microsoft. “연산자 오버로드(C# 프로그래밍 가이드)” Microsoft 문서. https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/statements-expressions-operators/operator-overloading