C# Error CS8171 – Cannot initialize a by-value variable with a reference

C# Error

CS8171 – Cannot initialize a by-value variable with a reference

Reason for the Error & Solution

Cannot initialize a by-value variable with a reference

Example

The following sample generates CS8171:

// CS8171.cs (8,13)

class Test
{
    void A()
    {
        int a = 123;
        ref int x = ref a;
        var y = ref x;
    }
}

Remember that var y = ref x is implicitly int y = ref x where int y is a by-value variable.

To correct this error

Removing the ref modifier from the right side of the assignment will correct this error:

class Test
{
    void A()
    {
        int a = 123;
        ref int x = ref a;
        var y = x;
    }
}