[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#에서 오버로딩은 다양한 패턴과 기법을 통해 메소드의 다양성을 확장할 수 있습니다.
참고 문헌: