이번에는 C# 메서드의 정의, 구조, 사용 예시 등을 설명하고, 예시 코드를 통해 프로그래밍 입문자들이 효과적으로 활용할 수 있도록 정리해 보겠습니다.
C# 메서드 개념과 구조
메서드란 무엇인가?
메서드는 특정 작업을 수행하는 코드의 묶음입니다. 쉽게 말해, 메서드는 프로그램에서 반복적으로 사용되는 코드를 하나의 이름으로 정의해 놓은 것입니다. 이렇게 정의된 메서드는 필요할 때마다 호출하여 사용할 수 있습니다.
메서드를 사용하면 다음과 같은 이점이 있습니다.
- 코드의 재사용성: 같은 코드를 여러 번 작성하지 않아도 됩니다.
- 코드의 구조화: 프로그램을 논리적인 부분으로 나눌 수 있습니다.
- 유지보수의 용이성: 코드 수정이 필요할 때 해당 메서드만 수정하면 됩니다.
메서드의 기본 구조
C#에서 메서드의 기본 구조는 다음과 같습니다.
접근제한자 반환형 메서드이름(매개변수목록)
{
// 메서드 내용
return 반환값; // 반환형이 void가 아닌 경우
}
각 부분에 대해 자세히 살펴보겠습니다.
접근제한자 (Access Modifier):
메서드에 대한 접근 권한을 지정합니다. 주로 사용되는 접근제한자는 다음과 같습니다.
- public: 어디서든 접근 가능
- private: 같은 클래스 내에서만 접근 가능
- protected: 같은 클래스와 파생 클래스에서 접근 가능
- internal: 같은 어셈블리 내에서 접근 가능
반환형 (Return Type):
- 메서드가 작업을 수행한 후 반환하는 값의 데이터 형식을 지정합니다. 반환값이 없는 경우 'void'를 사용합니다.
메서드이름 (Method Name):
- 메서드를 식별하는 이름입니다. 일반적으로 동사나 동사구로 시작합니다.
매개변수목록 (Parameter List):
- 메서드에 전달되는 입력값들의 목록입니다. 각 매개변수는 데이터 형식과 이름으로 구성됩니다.
메서드 내용 (Method Body):
- 메서드가 수행할 실제 작업을 정의하는 코드 블록입니다.
return 문:
- 메서드의 실행 결과를 호출자에게 반환합니다. void 메서드의 경우 return 문을 생략할 수 있습니다.
메서드 예시와 설명
이제 실제로 적용 가능한 예시를 통해 메서드의 사용법을 자세히 알아보겠습니다.
예시 1: 간단한 덧셈 메서드
public class Calculator
{
public int Add(int a, int b)
{
int result = a + b;
return result;
}
}
이 예시에서,
- 'public'은 접근제한자로, 이 메서드가 다른 클래스에서도 사용 가능함을 나타냅니다.
- 'int'는 반환형으로, 이 메서드가 정수를 반환한다는 것을 의미합니다.
- 'Add'는 메서드 이름입니다.
- '(int a, int b)'는 매개변수 목록으로, 이 메서드가 두 개의 정수를 입력받는다는 것을 나타냅니다.
- 중괄호 {} 안의 코드가 메서드의 내용입니다.
- 'return result;'는 계산된 결과를 반환합니다.
이 메서드를 사용하는 방법은 다음과 같습니다.
Calculator calc = new Calculator();
int sum = calc.Add(5, 3);
Console.WriteLine("5 + 3 = " + sum); // 출력: 5 + 3 = 8
예시 2: void 메서드 (반환값이 없는 메서드)
public class Greeter
{
public void SayHello(string name)
{
Console.WriteLine("안녕하세요, " + name + "님!");
}
}
이 예시에서,
- 'void'는 이 메서드가 값을 반환하지 않음을 나타냅니다.
- 'SayHello'는 메서드 이름입니다.
- '(string name)'은 문자열 타입의 매개변수를 받는다는 것을 나타냅니다.
- 메서드 내용은 단순히 콘솔에 인사말을 출력합니다.
이 메서드를 사용하는 방법은 다음과 같습니다.
Greeter greeter = new Greeter();
greeter.SayHello("홍길동"); // 출력: 안녕하세요, 홍길동님!
매개변수의 종류
C#에서는 다양한 종류의 매개변수를 사용할 수 있습니다. 주요 매개변수 종류는 다음과 같습니다.
값 매개변수 (Value Parameters):
기본적인 매개변수 전달 방식으로, 값의 복사본이 메서드에 전달됩니다.
public void IncrementValue(int number)
{
number += 1;
Console.WriteLine("메서드 내부: " + number);
}
// 사용 예
int x = 5;
IncrementValue(x);
Console.WriteLine("메서드 호출 후: " + x);
// 출력:
// 메서드 내부: 6
// 메서드 호출 후: 5
참조 매개변수 (Reference Parameters):
'ref' 키워드를 사용하여 변수의 참조를 전달합니다. 메서드 내에서 변경된 값이 원본 변수에 반영됩니다.
public void IncrementReference(ref int number)
{
number += 1;
Console.WriteLine("메서드 내부: " + number);
}
// 사용 예
int x = 5;
IncrementReference(ref x);
Console.WriteLine("메서드 호출 후: " + x);
// 출력:
// 메서드 내부: 6
// 메서드 호출 후: 6
출력 매개변수 (Output Parameters):
'out' 키워드를 사용하여 메서드에서 값을 반환받을 수 있는 매개변수를 정의합니다.
public void GetValues(out int sum, out int product)
{
sum = 10 + 5;
product = 10 * 5;
}
// 사용 예
int resultSum, resultProduct;
GetValues(out resultSum, out resultProduct);
Console.WriteLine("합: " + resultSum + ", 곱: " + resultProduct);
// 출력:
// 합: 15, 곱: 50
선택적 매개변수 (Optional Parameters):
기본값을 가지는 매개변수로, 메서드 호출 시 값을 생략할 수 있습니다.
public void Greet(string name, string greeting = "안녕하세요")
{
Console.WriteLine(greeting + ", " + name + "님!");
}
// 사용 예
Greet("홍길동");
Greet("김철수", "반갑습니다");
// 출력:
// 안녕하세요, 홍길동님!
// 반갑습니다, 김철수님!
'프로그래밍 언어 > C#' 카테고리의 다른 글
C# 재귀 호출 마스터하기, 팩토리얼과 피보나치 수열 예제로 배우는 프로그래밍 - C#8 (0) | 2024.09.25 |
---|---|
메서드 오버로딩으로 C# 코드 가독성 향상하기 - C#7 (0) | 2024.09.10 |
C# 제어문 마스터하기: if문, for loop, while loop 완벽 가이드 - C# 5 (0) | 2024.09.02 |
C# 연산자와 표현식 입문자를 위한 산술, 비교, 논리 및 람다 예제 - C# 4 (0) | 2024.08.27 |
C# 변수와 데이터 타입 종류, 선언과 초기화 방법 - C# 3 (0) | 2024.08.23 |