C# Error
CS8166 – Cannot return a parameter by reference ‘{0}’ because it is not a ref parameter
Reason for the Error & Solution
Cannot return a parameter by reference because it is not a ref parameter
Example
The following sample generates CS8166:
// CS8166.cs (11,20)
public class Test
{
public struct S1
{
public char x;
}
ref char Test1(char arg1, S1 arg2)
{
return ref arg1;
}
}
To correct this error
To return a parameter that is not passed by reference, refactoring to use return by value will correct this error:
public class Test
{
public struct S1
{
public char x;
}
char Test1(char arg1, S1 arg2)
{
return arg1;
}
}