컴퓨터프로그래밍/C#

C# - 메소드 오버로딩

zelkova 2016. 11. 24. 14:26

<목차로 돌아가기>


  메소드 오버로딩


  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;

  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.         static void test(){}
  11.         static void test(int i) { }
  12.         static void test(int i, float j) { }
  13.         static void test(String[] args) { }

  14.         static void Main(string[] args)
  15.         {
  16.             test(1,3);   
  17.         }
  18.     }
  19. }


클래스 하나에 같은 이름의 메소드가 여러개 사용되었을 때 C#은 어떻게 처리할가?

물론 같은이름 같은 인자값이면 오류가 뜨지만 위와같이 같은이름 다른인자값이면 메소드 오버로딩이 일어난다.


지금 이 코드에서 불러오는 메소드는 몇번째줄 메소드일가?


눈치 좀 있는분들은 다 파악하겠지만 13줄의 static void test(int i, float j) 메소드가 호출된다.


이렇게 같은 이름의 메소드가 여러개 선언되었을 경우, 메소드를 호출할 때 인자를 몇개 사용할 것인지, 정수 혹은 문자 등 어떤 형식을 인자로 사용할 것인지에 따라 호출할 메소드가 결정된다. 이러한 현상을 '메소드 오버로딩'이라 한다.


반응형

'컴퓨터프로그래밍 > C#' 카테고리의 다른 글

접근제한자와 this  (0) 2016.11.24
C# - 클래스, 객체지향의 개념잡기  (0) 2016.11.24
C#_메소드_인자(변수)전달하기  (0) 2016.11.24
C# 변수의 범위  (0) 2016.11.22
C# - 메소드  (6) 2016.11.22