Unity3d C# toolba 사용해보기

C#에서 메소드오버로딩(Method overloading)을 알아보자





학창 시절 C언어 시간에 열심히 공부하였다면.. 이런거 안 해도 되는데 다시 책을 보게 되었습니다 ^^

오버로딩(Overloading)이라는게  사전적인 의미로는.. 물건을 과적하다 너무 많이 싣다 부하를 주다 이런뜻을 의미합니다.

의미에서 풍기는 것과 같이 C#에서는.. 하나의 메소드 이름을 갖고 있지만.. 여러가지의 의미를 갖는 것을 뜻하는 것입니다.

무슨 말이냐면..

Add 라는 이름의 Method가 있지만..   매개변수의 형식이나 갯수 등에 변화를 주어 이름만 갖지만 전혀 다른 기능
을 하는 메소드를 만들 수 있다는 것입니다. 언듯말하는게 의미가 와 닿지 않을 수 있지만..  이게 얼마나 유용한 기능인지는 개발자인 저는 알 것 같습니다.

이렇게 Add라는 Method를 만들어 놨는데 아래와 같이 매개변수의 타입을 다르게 하거나  숫자를 다르게 하여 전혀 다른 의미를 갖는 작업을 하는 것을 선언할 수 있는 것이지요..

int Add ( int a, int b )
{
 return a + b;
}

int Add ( int a, int b, int c )
{
return a + b + c;
}

double Add ( int a , double b )
{
 return a * b
}

입력되는 값에 따라서 다른 계산 결과를 보여주는 Method를 만들 수 있는 것입니다.

메소드의 이름을 지을 고민을 크게 안 해도 되니 큰~고민을 하나 덜 수 있게 된 것 같습니다. 비슷한 기능을 하는 메소드를 한 데 모와서 같은 이름을 지정해 버리면 정말 효율적인 프로그래밍이 가능 할 것 같네요..

아래는 책 속의 예제를 한번 실행해서 결과가 잘 나오는지 확인을 한번 해 보았습니다.



C# Method Overloading



Plus라는 method를 선언하였지만.. 같은 이름이지만 int형 반환인 것과 double형 반환 형식을 지정 하였고..  매개변수도 2개 인 것과 3개인 것 그리고 형식이 int인 것과 double인 것 혼합형인 것을 적용하여 만들어도 에러 안 나고 잘 되는군요..

책의 설명에는 이렇게 오버로딩을 이용하여 메소드를 많이 만들어도 부하를 주지 않는 다고 설명 하고 있습니다.

델파이를 몇 년간 사용 해왔는데 분명 거기에도 Overloading을 적용하는 방법이 있을 것입니다. 근데 써 본적도 없었네요;; 정말 개발자 맞는지.. 헛 살아온 것 같습니다 ㅜㅜ

델파이 procedure를 만들때 마다 항상 이름 때문에 고민 하는 일이 참 많았었는데 이번을 기회로 해서 델파이 에서도 한번 써 보는게 좋을 것 같습니다^^




댓글