C#에서는 메소드 오버로딩(Method Overloading) 및 가변 길이 매개변수(Variable Length Parameters)를 사용하여 메소드에 유연성을 부여할 수 있습니다.
메소드 오버로딩
메소드 오버로딩은 같은 이름을 가진 메소드에 대해 매개변수의 타입, 개수, 혹은 매개변수의 순서가 다른 경우에 사용됩니다. 이것은 다양한 매개변수에 따라 동일한 기능을 수행하는 메소드를 정의할 수 있는 기능입니다. 예를 들어, 다음과 같이 같은 이름의 메소드를 생성할 수 있습니다.
public void PrintNumber(int number){
Console.WriteLine("Integer Number: " + number);
}
public void PrintNumber(double number){
Console.WriteLine("Double Number: " + number);
}
이 경우, PrintNumber
메소드를 호출할 때 정수 또는 실수를 매개변수로 전달하면 각각 다른 메소드가 호출됩니다.
가변 길이 매개변수
가변 길이 매개변수는 매개변수의 개수가 유동적인 경우에 사용됩니다. C#에서는 params
키워드를 사용하여 가변 길이 매개변수를 정의할 수 있습니다. 이러한 매개변수를 사용하는 경우, 메소드 호출자는 필요에 따라 매개변수를 여러 개 전달할 수 있습니다.
예를 들어, 정수로 이루어진 숫자 목록을 출력하는 메소드를 작성할 때 params
를 사용할 수 있습니다.
public void PrintNumbers(params int[] numbers){
foreach(int num in numbers){
Console.WriteLine(num);
}
}
이제 다음처럼 메소드를 호출할 수 있습니다.
PrintNumbers(1, 2, 3); // 1, 2, 3을 출력
PrintNumbers(4, 5, 6, 7, 8); // 4, 5, 6, 7, 8을 출력
가변 길이 매개변수를 사용하면 매개변수 개수에 제한을 받지 않고 여러 값을 전달할 수 있습니다.
결론
C#에서는 메소드 오버로딩과 가변 길이 매개변수를 통해 메소드를 유연하게 정의할 수 있습니다. 메소드 오버로딩을 사용하여 다양한 매개변수를 받는 메소드를 정의하고, 가변 길이 매개변수를 사용하여 매개변수 개수에 제한을 받지 않는 메소드를 구현할 수 있습니다.
참고 자료:
- Microsoft Docs. “C# Programming Guide - Params (C# Reference).” Microsoft Docs, Microsoft, docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments#params-parameter-array.