ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 등의 문자열로도 사용이 가능합니다. 한가지 메소드로 많은 다른 결과값을 얻을 수 있습니다. 많이 유용한 메소드 오버로딩입니다.

     

     

    오늘은 메소드와 메소드 오버로딩에 대해서 알아보았습니다.

    반응형

    댓글

choi.devs