728x90

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) 은 달라도 시그너처가 같으면 에러가 발생한다.




728x90

'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
블로그 이미지

Link2Me

,