[Unity]/[C#]

[C#] 메서드 매개 변수 : params, in, ref, out

극꼼 2022. 9. 28. 20:43
반응형


* 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