반응형
* params : 가변 개수의 인수.
* in : 매개 변수를 참조로 전달할 수 있지만, 호출된 메서드로만 읽을 수 있습니다.
static void InArgExample(in int number)
{
number = 19; //오류 출력 -> 수정 불가능.
}
* ref : 인수가 값이 아닌 참조로 전달됨을 의미합니다.
void Method(ref int refArgument)
{
refArgument = refArgument + 44;
}
int number = 1;
Method(ref number);
Console.WriteLine(number); //45 출력 -> 값타입인 int도 참조로 전달
* out : 매개 변수가 참조로 전달되고, 호출된 메서드에 의해 새로 기록되도록 해줍니다. 메서드가 반환되기 전에 값이 할당되어 있어야 합니다.
void Method(ref int refArgument)
{
refArgument = refArgument + 44;
}
int number = 1;
Method(ref number);
Console.WriteLine(number); //45 출력 -> 값타입인 int도 참조로 전달
<in, ref, out을 쓸 수 없는 메서드>
- async 비동기 메서드
- yield return, yield break 문을 포함하는 반복기 메서드
- 확장 메서드의 첫번째 인수는 구조체인 경우가 아니면 in 한정자를 가질 수 없음
반응형
'[Unity] > [C#]' 카테고리의 다른 글
[C#] 일반화 프로그래밍 (2) | 2022.09.30 |
---|---|
[C#] 확장 메서드 기법 (0) | 2022.09.29 |
[C#] Tuple(튜플) 형식 (0) | 2022.09.27 |
[C#] Action과 Func (0) | 2022.09.26 |
[C#] 비동기 메서드(async, await) (0) | 2022.09.21 |