[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#의 오버로딩을 이용하면 메소드와 연산자를 다양한 매개변수 형식으로 구현하여 높은 확장성을 제공할 수 있습니다.


참고 문헌: