메서드
중복되는 코드를 뭉쳐놓은 하나의 블록. 코드를 재사용하거나 모듈화 할 수 있게 만들어주는 것.
- 코드의 재사용성
- 모듈화
- 가독성과 유지보수성
- 중복 제거
- 추상화
메서드의 구조
[접근 제한자] [리턴 타입] [메서드 이름]([매개변수])
{
// 메서드 실행 코드
}
- 접근 제한자(Access Modifier): 메서드에 접근할 수 있는 범위 지정. (public, private, protected 등)
- 리턴 타입(Return Type): 메서드가 반환하는 값의 데이터 타입 지정. (반환 값이 없을 경우 void 사용)
- 메서드 이름(Method Name): 메서드를 호출할 때 사용하는 이름.
- 매개변수(Parameters): 메서드에 전달되는 입력 값. 0개 이상의 매개변수를 정의할 수 있다.
- 메서드 실행에 코드(Method Body): 중괄호({}) 안에 메서드가 수행하는 작업을 구현하는 코드 작성.
매개변수와 반환값
static void PrintLine()
{
for (int i = 0; i < 10; i++)
{
Console.Write("=");
}
Console.WriteLine();
}
static void PrintLine2(int count)
{
for (int i = 0; i < count; i++)
{
Console.Write("=");
}
Console.WriteLine();
}
static int Add(int a, int b)
{
return a + b;
}
static void Main(string[] args)
{
// 사용 예시
PrintLine();
PrintLine2(20);
int result = Add(10, 20);
Console.WriteLine(result);
}
오버로딩
매개변수 목록이 다중 정의된 것. 매개변수의 개수, 타입, 순서가 다르면 다른 메서드로 취급한다. 메서드의 기능이나 작업은 동일하지만 입력값에 따라 다르게 동작해야 할 때 사용된다.
// 오버로딩
static int AddNumbers(int a, int b)
{
return a + b;
}
static float AddNumbers(float a, float b)
{
return a + b;
}
static int AddNumbers(int a, int b, int c)
{
return a + b + c;
}
static void Main(string[] args)
{
// 오버로딩 메서드 호출
int sum1 = AddNumbers(10, 20); // 두 개의 정수 매개변수를 가진 메서드 호출
float sum3 = AddNumbers(10, 20); // 두 개의 실수 매개변수를 가진 메서드 호출
int sum2 = AddNumbers(10, 20, 30); // 세 개의 정수 매개변수를 가진 메서드 호출
재귀 호출
메서드가 자기 자신을 호출하는 것. 호출 스택에 호출된 메서드의 정보를 순차적으로 쌓고, 메서드가 반환되면서 스택에서 순차적으로 제거되는 방식이다. 메모리 사용량이 더 크고 실행 속도가 느릴 수 있으며, 무한 루프에 빠질 수 있기 때문에 주의해야한다.
// 재귀 호출
static void CountDown(int n)
{
if (n <= 0)
{
Console.WriteLine("Done");
}
else
{
Console.WriteLine(n);
CountDown(n - 1); // 자기 자신을 호출
}
}
static void Main(string[] args)
{
// 재귀 호출
CountDown(5);
}
구조체
여러 개의 데이터를 묶어서 하나의 사용자 정의 형식으로 만들기 위한 방법. 값 형식(대입하거나 값을 할당할 때 복사되는 것)으로 분류되며 struct 키워드를 사용하여 선언한다.
*자세한 내용은 class와 비교하며 언급
'부트캠프 > Study' 카테고리의 다른 글
C# 문법 3강(1) - 클래스와 객체 (0) | 2023.11.08 |
---|---|
C# 문법 2강 - 문제 풀이 (0) | 2023.11.08 |
C# 문법 2강(2) - 배열 / 리스트(컬렉션) (0) | 2023.11.07 |
C# 문법 2강(1) - 조건문 / 반복문 (0) | 2023.11.07 |
C# 문법 1강 - 연산자 / 문자열 (1) | 2023.11.06 |