[c#] C# 메소드 오버로딩과 가변 길이 매개변수

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#에서는 메소드 오버로딩과 가변 길이 매개변수를 통해 메소드를 유연하게 정의할 수 있습니다. 메소드 오버로딩을 사용하여 다양한 매개변수를 받는 메소드를 정의하고, 가변 길이 매개변수를 사용하여 매개변수 개수에 제한을 받지 않는 메소드를 구현할 수 있습니다.

참고 자료: