다음을 통해 공유


ref 키워드

다음과 같은 상황에서 ref 키워드를 사용합니다.

  • 메서드 시그니처 및 메서드 호출에서 인수를 메서드에 참조로 전달합니다.
public void M(ref int refParameter)
{
    refParameter += 42;
}
  • 메서드 시그니처에서 값을 호출자에게 참조로 반환합니다. 자세한 내용은 ref return를 참조하세요.
public ref int RefMax(ref int left, ref int right)
{
    if (left > right)
    {
        return ref left;
    }
    else
    {
        return ref right;
    }
}
public void M2(int variable)
{
    ref int aliasOfvariable = ref variable;
}
public ref int RefMaxConditions(ref int left, ref int right)
{
    ref int returnValue = ref left > right ? ref left : ref right;
    return ref returnValue;
}
  • struct 선언에서 ref struct를 선언합니다. 자세한 내용은 ref 구조체 형식 문서를 참조하세요.
public ref struct CustomRef
{
    public ReadOnlySpan<int> Inputs;
    public ReadOnlySpan<int> Outputs;
}
public ref struct RefFieldExample
{
    private ref int number;
}
  • 제네릭 형식 선언에서 형식 매개 변수 allows ref struct의 형식을 지정합니다.
class RefStructGeneric<T, S>
    where T : allows ref struct
    where S : T
{
    // etc
}