|
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void test(){}
- static void test(int i) { }
- static void test(int i, float j) { }
- static void test(String[] args) { }
- static void Main(string[] args)
- {
- test(1,3);
- }
- }
- }
클래스 하나에 같은 이름의 메소드가 여러개 사용되었을 때 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 |