컴파일러 오류 CS8159

범위 변수를 참조로 반환할 수 없습니다.

다음 샘플에서는 CS8159 오류가 발생합니다.

// CS8159.cs (7,74)

using System.Linq;
class TestClass
{
    delegate ref char RefCharDelegate();
    void TestMethod()
    {
        var x = from c in "TestValue" select (RefCharDelegate)(() => ref c);
    }
}

이 오류를 해결하려면

범위 변수를 반환하려는 경우 값으로 반환하도록 리팩터링하면 이 오류가 수정됩니다.

using System.Linq;
class TestClass
{
    delegate char RefCharDelegate();
    void TestMethod()
    {
        var x = from c in "TestValue" select (RefCharDelegate)(() => c);
    }
}