The ref
keyword
You use the ref
keyword in the following contexts:
- In a method signature and in a method call, to pass an argument to a method by reference.
public void M(ref int refParameter)
{
refParameter += 42;
}
- In a method signature, to return a value to the caller by reference. For more information, see
ref return
.
public ref int RefMax(ref int left, ref int right)
{
if (left > right)
{
return ref left;
}
else
{
return ref right;
}
}
- In a declaration of a local variable, to declare a reference variable.
public void M2(int variable)
{
ref int aliasOfvariable = ref variable;
}
- As the part of a conditional ref expression or a ref assignment operator.
public ref int RefMaxConditions(ref int left, ref int right)
{
ref int returnValue = ref left > right ? ref left : ref right;
return ref returnValue;
}
- In a
struct
declaration, to declare aref struct
. For more information, see theref
structure types article.
public ref struct CustomRef
{
public ReadOnlySpan<int> Inputs;
public ReadOnlySpan<int> Outputs;
}
- In a
ref struct
definition, to declare aref
field. For more information, see theref
fields section of theref
structure types article.
public ref struct RefFieldExample
{
private ref int number;
}
- In a generic type declaration to specify that a type parameter
allows ref struct
types.
class RefStructGeneric<T, S>
where T : allows ref struct
where S : T
{
// etc
}
Tee yhteistyötä kanssamme GitHubissa
Tämän sisällön lähde on GitHubissa, jossa voit myös luoda ja tarkastella ongelmia ja pull-pyyntöjä. Katso lisätietoja osallistujan oppaasta.