[c#] C# 오버로딩의 다양한 패턴 및 기법

C#에서는 메소드 오버로딩(Overloading)을 통해 동일한 이름의 메소드를 여러 개 정의할 수 있습니다. 이를 통해 같은 이름으로 다양한 매개변수를 받아들이거나 반환값을 다르게 할 수 있습니다. 오버로딩은 메소드의 유연성을 높여주고 재사용성을 높여주는데 도움이 됩니다.

기본 오버로딩 패턴

가장 기본적인 형태의 오버로딩은 매개변수의 자료형이나 개수를 달리하여 여러 메소드를 정의하는 것입니다. 예를들어:

public class OverloadExample
{
    public void DoSomething(int number) 
    {
        // int 형 매개변수를 받는 동작 수행
    }

    public void DoSomething(string text) 
    {
        // string 형 매개변수를 받는 동작 수행
    }
}

이렇게 하면 DoSomething이라는 이름의 메소드가 int 혹은 string을 매개변수로 받아들일 수 있게 됩니다.

파라미터의 선택적 활용

C# 4.0에서는 선택적 매개변수를 통해 오버로딩 패턴을 더욱 간결하게 사용할 수 있습니다.

public void DoSomething(int number, string text = "default") 
{
    // number를 이용한 동작 수행
    // text의 기본 값은 "default"
}

이 경우에는 DoSomething을 호출할 때 두 번째 매개변수를 입력하지 않아도 되며, 그럴 경우 자동으로 “default” 값이 사용됩니다.

제네릭을 활용한 오버로딩

C# 제네릭(Generics)을 이용하면 동일한 메소드 시그니처로 여러 자료형에 대해 오버로딩 할 수 있습니다.

public void Process<T>(T item) 
{
    // T 형식의 item에 대한 동작 수행
}

Process 메소드를 호출할 때 제네릭 타입 T를 자유롭게 지정하여 사용할 수 있습니다.

오버로딩의 사용 사례

C#에서 오버로딩은 다양한 패턴과 기법을 통해 메소드의 다양성을 확장할 수 있습니다.


참고 문헌: