Dela via


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 en ref struct. Mer information finns i ref artikeln strukturtyper .
    public ref struct CustomRef
    {
        public ReadOnlySpan<int> Inputs;
        public ReadOnlySpan<int> Outputs;
    }
    
  • I en ref struct definition, för att deklarera ett ref fält. Mer information finns i ref avsnittet fält i ref 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
    }