-
C# 연습해보기, 메소드와 메소드 오버로딩(Method, Method Overloading)프로그램/C# 2020. 1. 13. 13:20
메소드에 대해서 알아볼려고합니다.
C#에서의 메소드는 C/C++의 함수와 비슷한 기능을 합니다. 메소드란? 간단하게 이야기 하자면, 이어지는 코드을 묶어놓은 코드 블럭입니다.
메소드 간단 예시(합을 출력해주는 메소드)
/* [접근 지정자] 반환형식 메소드명(매개변수) { // 실행될 코드 } */ static void sum(int a, int b) { Console.WriteLne("{0} + {1} = {2}", a, b, a+b); }
해당 메소드 사용 예시
class Program { static void Main(string[] args) { sum(5, 6); Console.WriteLne("{0}", returnSum(5, 6)); } static void sum(int a, int b) { Console.WriteLne("{0} + {1} = {2}", a, b, a+b); } static int returnSum(int a, int b) { return a+b; } }
이렇게 한다면 결과값이 어찌 나올까요?
결과값
5 + 6 = 11 11 계속하려면 아무 키나 누르십시오...
이러한 결과가 나오게 됩니다.
sum 메소드에는 콘솔로 바로 출력, returnSum 메소드는 지정된 반환형식으로 리턴 후 리턴된 값을 받아서 콘솔에 출력 해주는 거라고 생각하시면 이해하기 쉬울 겁니다. 그리고 주의, 메소드 내에서 리턴을 만나게 되면 해당 메소드에서 바로 빠져나옵니다.
다음은 메소드 오버로딩에 대해서 설명 드리겠습니다.
C#에서는 메소드 오버로딩을 지원하여, 같은 메소드명에 인자만 다르게 하여 매개변수의 데이터 형식과 수에 따라 그에 맞는 코드를 실행할 수 있습니다.
메소드 오버로딩 예시
static int add(int a) { Console.WriteLne("{0}", a); return a; } static int add(int a, int b) { Console.WriteLne("{0} + {1}", a, b); return a+b; } static int add(int a, int b, int c) { Console.WriteLne("{0} + {1} + {2}", a, b, c); return a+b+c; }
예시를 보시면 같은 메소드 명인데도 불고하고 여러개가 등장합니다.
이렇게 같은 명의 메소드인데도 매개변수에 따라 호출되는 메소드가 다르게 됩니다.
메소드 오버로딩 사용 예시
class Program { static void Main(string[] args) { Console.WriteLine("{0}", add(100)); Console.WriteLine("{0}", add(100, 200)); Console.WriteLine("{0}", add(100, 200, 300)); } static int add(int a) { Console.WriteLne("{0}", a); return a; } static int add(int a, int b) { Console.WriteLne("{0} + {1}", a, b); return a+b; } static int add(int a, int b, int c) { Console.WriteLne("{0} + {1} + {2}", a, b, c); return a+b+c; } }
결과값
100 100 100 + 200 300 100 + 200 + 300 600 계속하려면 아무 키나 누르십시오...
이러한 결과가 나오게 됩니다.
간단하게 말씀드리자면 같은 메소드에 전달된 갯 수 마다 결과가 다르다는걸 볼 수 있습니다. 이러한 방법으로 정수 또는 실수 상관 없이 string 등의 문자열로도 사용이 가능합니다. 한가지 메소드로 많은 다른 결과값을 얻을 수 있습니다. 많이 유용한 메소드 오버로딩입니다.
오늘은 메소드와 메소드 오버로딩에 대해서 알아보았습니다.
반응형'프로그램 > C#' 카테고리의 다른 글
C# 연습해보기, 무한 루프 그리고 제어문(break, continue, goto) (0) 2020.01.09 C# 연습해보기, 반복문(while, do, for, foreach) (0) 2020.01.07 C# 연습해보기, 조건문(if, else, switch) (0) 2020.01.07 C# 연습해보기, 연산자(Operators) (0) 2020.01.07 C# 연습해보기, 배열 알아보기 (0) 2020.01.07