C# Error
CS8158 – Cannot return by reference a member of ‘{0}’ because it was initialized to a value that cannot be returned by reference
Reason for the Error & Solution
Cannot return by reference a member because it was initialized to a value that cannot be returned by reference
Example
The following sample generates CS8158:
// CS8158.cs (11,14)
public class Test
{
    public struct S1
    {
        public char x;
    }
    ref char Test1(char arg1, S1 arg2)
    {
        ref S1 r = ref arg2;
        return ref r.x;
    }
}
To correct this error
To return members initialized to a value that cannot be returned by reference, refactoring to return by value corrects this error:
    char Test1(char arg1, S1 arg2)
    {
        ref S1 r = ref arg2;
        return r.x;
    }
 
															 
								 
								