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

C#에서 메서드를 오버로드하는 다양한 방법

C# 메서드 오버로드의 두 가지 방식

C#에서는 다음과 같은 방법으로 메서드를 오버로드(Overload)할 수 있습니다.

매개변수의 데이터 타입이 서로 다른 경우
매개변수의 개수가 서로 다른 경우

메서드 오버로딩은 같은 이름의 메서드를 여러 개 정의하되, 컴파일러가 매개변수의 타입이나 개수를 기준으로 호출 대상을 구분하는 기능입니다. 단, 반환 타입만 다른 경우에는 오버로드로 인정되지 않습니다.

1. 매개변수의 데이터 타입이 다른 경우

아래 예제는 동일한 이름의 print 메서드를 사용하지만, 매개변수의 데이터 타입(int, double, string)이 각각 다릅니다.

void print(int i) {
   Console.WriteLine("Printing int: {0}", i);
}

void print(double f) {
   Console.WriteLine("Printing float: {0}", f);
}

void print(string s) {
   Console.WriteLine("Printing string: {0}", s);
}

메서드를 호출할 때 전달하는 인자의 타입에 따라 컴파일러가 자동으로 적절한 메서드를 선택하여 실행합니다.

2. 매개변수의 개수가 다른 경우

다음 예제는 같은 이름의 mulDisplay 메서드를 매개변수 개수를 2개, 3개, 4개로 각각 다르게 정의한 오버로드입니다.

// 두 개의 매개변수
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;
}

이처럼 C#에서는 매개변수의 타입 또는 개수를 달리하여 하나의 메서드 이름을 재사용할 수 있으며, 이를 통해 코드의 가독성과 재사용성을 크게 높일 수 있습니다.