📌1. Method ( 함수 )
메서드 ( 함수 )는 특정 작업 ( 기능 ) 을 묶어서 재사용할 수 있도록 만든 코드 블록이다.
[접근제한자] [반환형] 메서드이름(매개변수목록)
{
// 실행 코드
return 값; // 반환형이 void가 아닐 때 필요
}
접근제한자 : public , private , protected 등 ( 외부에서 접근 가능 여부 )
반환형 : 메서드가 돌려줄 값의 타입 ( int , string , void 등 )
메서드 이름 : 파스칼 표기법 ( PascalCase ) 로 작성하는 게 관례이다
매개변수 : 호출할 때 전달 받는 값 ( 준비물 )
📂 2. 반환값이 있는 메서드
public int Add(int a, int b)
{
return a + b;
}
// 호출
int result = Add(3, 5);
Console.WriteLine(result); // 8
⚠️ 주의
반환형과 return 값 타입이 반드시 일치해야 한다
📂 3. 반환값이 없는 메서드
public void PrintMessage(string name)
{
Console.WriteLine($"안녕하세요, {name}님!");
}
// 호출
PrintMessage("호찬");
⚠️ 주의
void 는 값 반환 없음 , 그래서 return 으로 값을 반환받지 못한다.
그러나, return 의 값을 지정하지 않으면 void 메서드에서도 return 을 사용할 수 있다.
void 메서드에서는 return 을 쓰면 단순히 "메서드 실행을 즉시 종료하라" 라는 의미
📂 4. ref ( 매개변수 키워드 )
참조 전달 , 읽기 / 쓰기 가능 - 메서드 안에서 값을 바꾸면 호출한 쪽 변수에도 반영
단, 호출하기 전에 반드시 초기화해야 한다.
void AddTen(ref int number)
{
number += 10;
}
int x = 5;
AddTen(ref x);
Console.WriteLine(x); // 15
⚠️ 주의
ref 를 쓰면 호출할 때에도 ref 를 붙어야한다.
📂 5. out ( 매개변수 키워드 )
참조 전달 , 출력 전용 - 참조로 전달되지만, 메서드 안에서 반드시 값을 할당해야 한다.
호출하기 전 변수 초기화가 필요 없다.
여러 값을 반환할 때 자주 사용한다.
void Divide(int a, int b, out int quotient, out int remainder)
{
quotient = a / b;
remainder = a % b;
}
int q, r; // 초기화 안 해도 됨
Divide(10, 3, out q, out r);
Console.WriteLine($"몫: {q}, 나머지: {r}"); // 몫: 3, 나머지: 1
⚠️ 주의
메서드 안에서 out 매개변수는 반드시 할당해야 한다.
📂 6. in ( 매개변수 키워드 )
값을 복사하지 않고 참조로 전달 , 메서드 안에서 수정 불가능
대형 구조체 같은 데이터를 전달할 때 성능 최적화 도움
void PrintInfo(in string text)
{
Console.WriteLine(text.Length);
}
string msg = "Hello World";
PrintInfo(in msg);
⚠️ 주의
in 매개변수는 읽기 전용
메서드 안에서 수정 불가능
'⭐C Sharp > 📌문법 사전' 카테고리의 다른 글
| Struct (0) | 2025.10.19 |
|---|---|
| Enum (0) | 2025.10.14 |
| Array (0) | 2025.10.14 |
| for , foreach , while , do-while (0) | 2025.09.26 |
| if & switch (0) | 2025.09.26 |