namespace CSharp
{
internal class Program
{
// 오버로딩
// 함수 이름의 재사용
static int Add(int a, int b)
{
Console.WriteLine("Add int 호출");
return a + b;
}
// 선택적 매개 변수
// 필수적으로는 문자를 2개을 받고 3번째 인자는 옵션이다. 아무것도 없으면 기본값은 0이다라는 의미의 함수
static int Add(int a, int b, int c = 0)
{
Console.WriteLine("Add int 호출");
return a + b + c;
}
static int Add(int a, int b, int c = 0, float d = 1.0f, double e = 3.0)
{
Console.WriteLine("Add int 호출");
return a + b + c;
}
//static int Add(int b, int a)
//{
// Console.WriteLine("Add int 호출");
// return a + b;
//}
//static void Add(int a, int b)
//{
// Console.WriteLine("Add int 호출");
// //return a + b;
//}
// 함수의 반환 형식과 b, a 위치 변화는 오버로딩을 할 수 없다
static float Add(float a, float b)
{
Console.WriteLine("Add float 호출");
return a + b;
}
static void Main(string[] args)
{
int ret = Program.Add(2, 3);
float ret2 = Program.Add(2.0f, 3.2f);
Program.Add(1, 2, d: 2.0f);
Console.WriteLine(ret);
Console.WriteLine(ret2);
}
}
}
정수 덧셈 (2개 매개변수)
static int Add(int a, int b)
{
Console.WriteLine("Add int 호출");
return a + b;
}
정수 덧셈 (3개 매개변수, 선택적 매개변수 포함)
static int Add(int a, int b, int c = 0)
{
Console.WriteLine("Add int 호출");
return a + b + c;
}
c에 기본값 0을 주어, 호출 시 인수를 생략할 수 있습니다.실수 덧셈
static float Add(float a, float b)
{
Console.WriteLine("Add float 호출");
return a + b;
}
float로 다르므로 별도의 오버로딩된 메서드로 구분됩니다.중복 정의 불가능한 경우