Nyckelordet ref
Du använder nyckelordet ref
i följande kontexter:
- I en metodsignatur och i ett metodanrop skickar du ett argument till en metod efter referens.
public void M(ref int refParameter)
{
refParameter += 42;
}
- I en metodsignatur returnerar du ett värde till anroparen med referens. Mer information finns i
ref return
.
public ref int RefMax(ref int left, ref int right)
{
if (left > right)
{
return ref left;
}
else
{
return ref right;
}
}
- I en deklaration av en lokal variabel ska du deklarera en referensvariabel.
public void M2(int variable)
{
ref int aliasOfvariable = ref variable;
}
- Som en del av ett villkorsstyrd referensuttryck eller en referenstilldelningsoperator.
public ref int RefMaxConditions(ref int left, ref int right)
{
ref int returnValue = ref left > right ? ref left : ref right;
return ref returnValue;
}
- I en
struct
deklaration ska du deklarera enref struct
. Mer information finns iref
artikeln strukturtyper .
public ref struct CustomRef
{
public ReadOnlySpan<int> Inputs;
public ReadOnlySpan<int> Outputs;
}
- I en
ref struct
definition, för att deklarera ettref
fält. Mer information finns iref
avsnittet fält iref
artikeln strukturtyper .
public ref struct RefFieldExample
{
private ref int number;
}
- I en allmän typdeklaration för att ange att en typparametertyper
allows ref struct
.
class RefStructGeneric<T, S>
where T : allows ref struct
where S : T
{
// etc
}
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.