Ключевое слово 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;
}
- В определении
ref struct
для объявленияref
поля. Дополнительные сведения см. вref
разделе полей статьиref
типов структур.
public ref struct RefFieldExample
{
private ref int number;
}
- В объявлении универсального типа для указания типов параметров
allows ref struct
типа.
class RefStructGeneric<T, S>
where T : allows ref struct
where S : T
{
// etc
}
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.