본문 바로가기

개인공부/C#

[C#] 메서드(Method)

■ 메서드(Method)란?

 - 일련의 작업을 하나로 묶은 명령문의 집합

 - 중복 코드 제거, 가독성 향상

 

■ 메서드 기본 형태 :

 - 입력 X(매개변수), 출력 X(반환 값)

 

 - 입력 X(매개변수), 출력 O(반환 값)

 

 - 입력 O(매개변수), 출력 X(반환 값)

 - 입력 O(매개변수), 출력 O(반환 값)

 

■ Example

static void Main(string[] args)
{
    Test01();

    int A = Test02();
    Console.WriteLine($"Main : Test02의 반환 값은 {A} 입니다.");
    Console.WriteLine();

    Test03(20);

    int B = Test04(2, 3);
    Console.WriteLine($"Main : Test04의 반환 값은 {B} 입니다.");

}

static void Test01()
{
    Console.WriteLine("Test01 : 매개변수X, 반환X 형태의 Method 입니다.");
    Console.WriteLine();
}

static int Test02()
{
    Console.WriteLine("Test02 : 매개변수X, 반환O 형태의 Method 입니다.");
    return 10;
}

static void Test03(int num)
{
    Console.WriteLine("Test03 : 매개변수O, 반환X 형태의 Method 입니다.");
    Console.WriteLine($"Test03 : 매개변수는 {num}입니다.");
    Console.WriteLine();

}

static int Test04(int a, int b)
{
    Console.WriteLine("Test04 : 매개변수O, 반환O 형태의 Method 입니다.");
    Console.WriteLine($"Test04 : 매개변수는 {a}, {b} 입니다.");
    return a + b;
}

 

Example 결과

 

■ 매개변수 기본값 :

 - 매개변수가 정의된 Method에서 호출할 때 매개변수를 입력하지 않으면 기본값이 할당

반환DataType 메서드이름(매개변수 = 기본값)
{
    ... 작업 내용 ...
}

 

■ Example

static void Main(string[] args)
{
    Test05();
    Test05(100, "Memoo");
}

static void Test05(int num = 10, string str = "Unknown")
{
    Console.WriteLine($"Test05 : num = {num}, str = {str} 입니다.");
}

 

Example 결과

 

■ 가변 길이 매개변수 :

 - 입력할 매개변수 개수가 고정적이지 않을 때, 가변적을 입력 가능

 - params 키워드 사용

반환DataType 메서드이름(params 매개변수)
{
    ... 작업 내용 ...
}

 

■ Example

static void Main(string[] args)
{
    Test06(1, 2, 3, 4, 5);
    Test06(10, 20);
}

static void Test06(params int[] numbers)
{
    foreach(int number in numbers)
    {
        Console.Write($"{number} ");
    }
    Console.WriteLine();
}

 

Example 결과

■ 오버로딩(Overloading) :

 - 하나의 method 이름으로 여러 형태의 구현

 - 매개변수의 개수 혹은 DataType이 달라야 함

반환DataType TestMedhod(int num)
{
    ... 작업 내용 ...
}

반환DataType TestMedhod(string str)
{
    ... 작업 내용 ...
}

 

■ Example

static void Main(string[] args)
{
    Test07(10);
    Test07(3.14);
}

static void Test07(int num)
{
    Console.WriteLine($"Test07 : int type = {num}");
}
static void Test07(double num)
{
    Console.WriteLine($"Test07 : double type = {num}");
}

 

Example 결과