Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 메서드 오버로딩이란? 개념부터 실전 예제까지 한눈에 이해하기

C# 메서드 오버로딩(Method Overloading)이란?

C#에서 메서드 오버로딩은 이름은 같지만 매개변수가 서로 다른 두 개 이상의 메서드를 정의하는 것을 말합니다. 컴파일러는 호출 시 전달되는 인자의 개수나 자료형을 기준으로 어떤 메서드를 실행할지 자동으로 판단합니다.

메서드 오버로딩을 구현하는 방법은 크게 두 가지입니다.

  • 인자(매개변수)의 개수를 다르게 하는 방법
  • 인자의 데이터 타입을 다르게 하는 방법

예를 들어 숫자들의 곱셈 결과를 출력하는 함수가 필요하다고 가정해 보겠습니다. 이때 오버로딩된 메서드들은 모두 같은 이름을 가지지만, 인자의 개수는 각각 다릅니다.

public static int mulDisplay(int one, int two) { }
public static int mulDisplay(int one, int two, int three) { }
public static int mulDisplay(int one, int two, int three, int four) { }

메서드 오버로딩 구현 예제

다음 예제는 인자의 개수를 달리하여 세 개의 오버로딩된 mulDisplay 메서드를 구현하고, 각각을 호출해 곱셈 결과를 출력하는 방법을 보여줍니다.

예제 코드

using System;
public class Demo {
   public static int mulDisplay(int one, int two) {
      return one * two;
   }

   public static int mulDisplay(int one, int two, int three) {
      return one * two * three;
   }

   public static int mulDisplay(int one, int two, int three, int four) {
      return one * two * three * four;
   }
}

public class Program {
   public static void Main() {
      Console.WriteLine("두 수의 곱: " + Demo.mulDisplay(10, 15));
      Console.WriteLine("세 수의 곱: " + Demo.mulDisplay(8, 13, 20));
      Console.WriteLine("네 수의 곱: " + Demo.mulDisplay(3, 7, 10, 7));
   }
}

실행 결과

두 수의 곱: 150
세 수의 곱: 2080
네 수의 곱: 1470

메서드 오버로딩의 장점

메서드 오버로딩을 활용하면 비슷한 기능을 수행하는 메서드마다 이름을 새로 만들 필요가 없어 코드의 가독성과 일관성이 크게 향상됩니다. 개발자는 하나의 직관적인 메서드 이름만 기억하면 되고, 상황에 맞는 인자만 전달하면 되기 때문입니다.

참고로 반환 타입만 다르고 매개변수가 동일한 경우에는 오버로딩으로 인식되지 않으므로, 반드시 매개변수의 개수 또는 타입이 달라야 한다는 점을 기억하세요.