C# 에서 함수(메소드)는 동일한 것을 여러개 만들 수가 있다는 걸 알게 되었다.
유투브 동영상 강좌를 보고, 구글링으로 얻은 지식 중에서 핵심내용만 적어두려고 한다.
오버로딩(OverLoading) : 한 클래스 내에서 동일한 이름의 메서드(함수)를 추가 정의
하나의 클래스에 같은 이름을 가진 메소드(함수)를 여러개 정의 할 수 있다.
메소드 이름은 동일하지만 시그너처의 갯수는 다르게 할 수 있다.
시그너처를 유일하게 하면 메서드의 이름은 얼마든지 같을 수 있다
public class MathClass
{
public static int Max(int i, int j)
{
return i > j ? i : j; //둘 중 큰수를 반환한다
}
public static int Max(int i, int j, int k)
{
return Max(Max(i, j), k); //Max(int, int) 를 호출한다
}
public static int Max(int i, int j, int k, int l)
{
return Max(Max(i, j, k), l); //Max(int, int, int) 를 호출한다
}
public static int Max(int[] arrays)
{
int maxValue = 0;
foreach (int i in arrays)
{
maxValue = Max(maxValue, i); //Max(int,int) 를 호출한다
}
return maxValue;
}
}
시그너처가 다르면 에러가 발생하지 않는다.
메소드 앞의 타입(string, int, double) 은 달라도 시그너처가 같으면 에러가 발생한다.
'C# > 문법 및 기능' 카테고리의 다른 글
C# int.TryParse (0) | 2015.12.25 |
---|---|
C# 오버라이딩(Overriding) 개념 이해 (1) | 2015.12.21 |
C# List 개념 이해 -1 (0) | 2015.12.14 |
C# 배열 개념 이해 및 실전 응용 (0) | 2015.12.13 |
C# Trackbar 기능 및 타이머 연결 (0) | 2015.12.08 |