[11장] C# 메서드와 함수 – 오버로딩과 재귀

오버로딩
출처: Monstera Production

C# 메서드와 함수 – 오버로딩과 재귀

서론

C#은 객체 지향 프로그래밍 언어로서, 메서드와 함수를 활용하여 코드를 모듈화하고 재사용성을 높일 수 있습니다. 이번 글에서는 C#에서의 메서드와 함수에 대해 자세히 알아보겠습니다. 특히, 오버로딩과 재귀에 대한 개념과 사용법에 대해 다룰 것입니다.

1. 메서드와 함수의 개념

C#에서 메서드와 함수는 비슷한 개념으로 사용되지만 약간의 차이가 있습니다. 메서드는 클래스 내에서 정의되는 함수로, 클래스의 멤버로서 동작합니다. 반면에 함수는 클래스에 속하지 않은 독립적인 코드 블록으로서 사용될 수 있습니다.

메서드와 함수는 코드의 재사용성과 가독성을 높이기 위해 사용됩니다. 여러 번 사용되는 코드 블록을 메서드나 함수로 정의하면, 해당 코드를 필요할 때마다 호출하여 사용할 수 있습니다.

2. 메서드와 함수의 오버로딩

메서드와 함수의 오버로딩은 같은 이름을 가진 메서드나 함수를 여러 개 정의하는 것을 말합니다. 오버로딩을 통해 하나의 이름으로 다양한 매개변수에 대응하는 여러 개의 메서드나 함수를 사용할 수 있습니다.

예를 들어, “Add”라는 이름의 메서드를 정의할 때, 매개변수가 없는 경우와 두 개의 정수형 매개변수가 있는 경우를 모두 정의할 수 있습니다. 이렇게 오버로딩된 메서드를 호출할 때는 전달하는 매개변수의 개수와 타입에 따라 알맞은 메서드가 선택되어 실행됩니다.

메서드의 오버로딩은 다음과 같은 형식으로 작성됩니다.

public void Add()
{
    // 매개변수가 없는 경우의 코드
}

public void Add(int a, int b)
{
    // 두 개의 정수형 매개변수가 있는 경우의 코드
}

3. 메서드와 함수의 재귀

메서드와 함수는 자기 자신을 호출하는 재귀적인 동작을 수행할 수 있습니다. 이를 재귀(Recursion)라고 합니다. 재귀를 사용하면 반복적인 작업이나 계산을 간결하게 표현할 수 있으며, 특히 깊이가 무한히 깊어질 수 있는 구조를 다룰 때 유용합니다.

재귀를 사용한 예시로는 팩토리얼 계산이 있습니다. 팩토리얼은 양의 정수 N에 대해 1부터 N까지의 모든 정수를 곱한 값을 의미합니다.

public static int Factorial(int n)
{
    if (n == 0)
        return 1;
    else
        return n * Factorial(n - 1);
}

위의 코드에서 Factorial 메서드는 자기 자신을 호출하여 n을 1씩 감소시키면서 재귀적으로 계산을 수행합니다. 이를 통해 팩토리얼을 구하는 간단하고 간결한 코드를 작성할 수 있습니다.

마무리

이번 글에서는 C#에서의 메서드와 함수에 대해 알아보았습니다. 메서드와 함수를 사용하면 코드를 모듈화하고 재사용성을 높일 수 있습니다. 또한, 오버로딩을 통해 다양한 매개변수에 대응하는 여러 개의 메서드나 함수를 정의할 수 있으며, 재귀를 사용하여 반복적인 작업을 간결하게 표현할 수 있습니다.

C#을 활용하여 메서드와 함수를 올바르게 사용하는 것은 프로그래밍의 기초입니다. 다양한 예제와 실습을 통해 이를 익숙하게 다룰 수 있도록 노력해봅시다.

다른 글 보기