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;
    }
}

Leave A Reply

Your email address will not be published. Required fields are marked *

You May Also Like

This C# program calculates and displays an upper triangular matrix based on user input. Problem Statement: The program takes the...
This C# program serves as a demonstration of bitwise operators, which are fundamental operators used for manipulating individual bits in...
This C# program is designed to interchange or swap the columns of a matrix. A matrix is a two-dimensional array...