C# 프로그래밍 - 메서드 오버로딩(Overloading)
C# 프로그래밍 - 메서드 오버로딩(Overloading)
메서드 오버로딩(Overloading)은 같은 이름을 사용하여 매개변수의 유형, 개수 또는 순서가 다른 여러 버전의 메서드를 정의하는것을 의미합니다. 오버로딩을 사용하면 동일한 메서드 이름을 사용하여 다양한 입력 유형 또는 매개변수 조합을 처리할 수있습니다. C# 컴파일러는 호출된 메서드의 매개변수 유형 및 개수를 기반으로 어떤 메서드를 호출할지 결정합니다.
메서드 오버로딩을 사용할 때 메서드 이름이 동일해야하고 매개변수의 데이터 형식 또는 개수가 달라야 합니다.
메서드 오버로딩 사용예시
매개변수의 유형이 다른 경우
각각 다른 매개변수 유형을 가지는 세개의 동일 이름 메서드(Add)를 선언하고 각각 정수 덧셈, 부동 소수점 덧셈, 문자열 연결을 수행하는 세 가지 다른 기능을 가진 메서드를 호출합니다.
class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public double Add(double a, double b)
{
return a + b;
}
public string Add(string a, string b)
{
return a + b;
}
}
Calculator calculator = new Calculator();
int result1 = calculator.Add(5, 10);
double result2 = calculator.Add(3.5, 2.7);
string result3 = calculator.Add("Hello, ", "World");
매개변수의 개수가 다른 경우
매개변수의 개수가 다른 동일한 이름의 메서드 두개를 선언합니다. 매개변수 개수에 따라서 메서드를 호출하고 다른 연산을 수행합니다.
class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public int Add(int a, int b, int c)
{
return a + b + c;
}
}
Calculator calculator = new Calculator();
int sum1 = calculator.Add(5, 10);
int sum2 = calculator.Add(3, 6, 9);
매개변수의 순서가 다른경우
매개변수의 개수가 동일하지만 순서가 다른 두개의 메서드를 선언합니다. 메서드 호출시 매개변수의 순서에 따라서 다른 메서드를 호출합니다.
class Calculator
{
public double Multiply(int a, double b)
{
return a * b;
}
public double Multiply(double a, int b)
{
return a * b;
}
}
Calculator calculator = new Calculator();
double product1 = calculator.Multiply(5, 3.5);
double product2 = calculator.Multiply(3.5, 5);