본문 바로가기
Program Language/C#

Part2. C# 기초다지기(11. 메서드 오버로딩)

by 토담이아빠 2023. 2. 28.

메서드 오버로딩

 

메서드 오버로딩

 

C#에서 메서드 오버로딩(overloading)은 하나의 클래스나 구조체 내에서 메서드 이름은 같고 매개변수의 개수나 타입이 다른 여러 메서드를 정의하는 것입니다. 즉, 같은 이름의 메서드가 매개변수의 개수나 타입에 따라 다른 동작을 하게 됩니다.

 

메서드 오버로딩을 사용하면 같은 이름으로 메서드를 여러 개 만들 수 있기 때문에 같은 동작을 하는 메서드라도 매개변수의 종류나 개수를 다르게 하여 코드 중복을 줄일 수 있습니다.

 

아래는 메서드 오버로딩을 사용한 예제입니다.


using System;

namespace MethodOverloading_exam
{
    class Calculator
    {
        public int Add(int x, int y)
        {
            return x + y;
        }

        public double Add(double x, double y)
        {
            return x + y;
        }

        public int Add(int x, int y, int z)
        {
            return x + y + z;
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            Calculator calculator = new Calculator();

            int result1 = calculator.Add(1, 2);
            Console.WriteLine($"1 + 2 = {result1}");

            double result2 = calculator.Add(1.5, 2.5);
            Console.WriteLine($"1.5 + 2.5 = {result2}");

            int result3 = calculator.Add(1, 2, 3);
            Console.WriteLine($"1 + 2 + 3 = {result3}");
        }
    }
}

[결과]

1 + 2 = 3
1.5 + 2.5 = 4
1 + 2 + 3 = 6

위 예제에서 Calculator 클래스는 덧셈 연산을 수행하는 Add 메서드를 세 개 정의하고 있습니다. 첫 번째는 Add 메서드는 두 개의 int 타입의 매개변수를 받아서 int 타입 결과를 반환합니다. 두 번째는 double 타입 매개변수를 받아서 double 타입 결과를 반환합니다. 세 번째는 인수의 개수가 세 개로 세 개의 int 타입 매개변수를 받아서 int 타입 결과를 반환합니다.

 

Main 메서드에서는 Calculator 클래스의 인스턴스를 생성하고 세 개의 오버로딩된 Add 메서드를 호출하여 결과를 출력합니다.

 

메서드 오버로딩은 다형성의(polymorphism)의 한 예시입니다. 즉, 하나의 메서드 이름으로 다양한 매개변수를 받는 메서드들이 존재하므로, 다형성의 특성을 지녔다고 할 수 있습니다. 메서드 오버로딩은 코드의 가독성을 높이고, 코드 중복을 줄이는 등의 장점이 있습니다.

 

 

댓글