[c#] C# 오버로딩 규칙
C#에서는 메서드 오버로딩을 지원하여 동일한 이름의 메서드를 여러 개 정의할 수 있습니다. 메서드 오버로딩은 메서드 시그니처에 따라 구별됩니다. 메서드 시그니처는 메서드의 이름과 매개변수 목록으로 정의되며, 반환 형식은 시그니처에 포함되지 않습니다.
오버로딩 규칙
-
메서드 이름이 같아야 합니다. 매개변수의 개수 또는 형식이 달라야 합니다.
-
반환 형식만 다른 오버로딩은 허용되지 않습니다. 메서드 호출 시 반환 형식으로 메서드를 구별할 수 없기 때문에, 반환 형식만 다른 오버로딩은 컴파일 에러가 발생합니다.
-
ref 및 out 키워드로만 다른 매개변수를 구분할 수 있습니다.
ref
및out
키워드의 사용 여부는 매개변수의 시그니처에 영향을 줍니다.
// 예제
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public double Add(double a, double b)
{
return a + b;
}
}
위의 예제에서는 Add
메서드를 정수형 매개변수로 오버로딩한 메서드와 실수형 매개변수로 오버로딩한 메서드로 구현하였습니다.
C#에서는 메서드 오버로딩을 통해 동일한 이름의 메서드로 다양한 시그니처를 가질 수 있으며, 유연하게 사용할 수 있는 장점이 있습니다.