C#/코드의 흐름제어

[C#]오버로딩, 선택적 매개변수

과아아앙 2021. 4. 7. 11:39

오버로딩

  • 함수의 이름을 재사용
  • 확인하는 것은 주어진 매개변수의 개수.으로 이것들이 서로 다르면 같은 함수 이름이더라도 사용 가능하다.
using System;

namespace CSharp
{
    class Program
    {
        // 함수 이름의 재사용
        static int Add(int a, int b)
        {
            Console.WriteLine("Add int 호출");
            return a + b;
        }

        static int Add(int a, int b, int c)
        {
            Console.WriteLine("Add int 호출");
            return a + b + c;
        }

        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.0f);

            //Console.WriteLine(ret);
        }
    }
}
// 함수의 이름이 같아도 주어지는 매개변수의 개수나 형식이 다르면 사용할 수 있다.

 

 

선택적 매개변수

함수에 매개변수를 받을 때, 필수적으로 받아야하는 인자 이외에 값들에 기본값을 지정해준 후 

필요할 때에만 값을 넣어주면 된다.

using System;

namespace CSharp
{
    class Program
    {
        // 함수 이름의 재사용
        static int Add(int a, int b)
        {
            Console.WriteLine("Add int 호출");
            return a + b;
        }

        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 float Add(float a, float b)
        {
            Console.WriteLine("Add float 호출");
            return a + b;
        }

        static void Main(string[] args)
        {
            Program.Add(1, 2, d: 2.0f);
            //Console.WriteLine(ret);
        }
    }
}