영어로 읽기

다음을 통해 공유


컴파일러 오류 CS0459

읽기 전용 지역 변수의 주소를 가져올 수 없습니다.

읽기 전용 지역 변수를 생성하는 C# 언어의 세 가지 일반적인 시나리오는 foreach, usingfixed입니다. 각각의 경우에서 읽기 전용 지역 변수에 쓰거나 해당 주소를 가져올 수 없습니다. 이 오류는 컴파일러가 읽기 전용 지역 변수의 주소를 가져오려는 것을 확인할 때 발생합니다.

예시

다음 예제에서는 foreach 루프 및 fixed 문 블록에서 읽기 전용 지역 변수의 주소를 가져오려고 할 때 CS0459를 생성합니다.

C#
// CS0459.cs
// compile with: /unsafe

class Program
{
    public unsafe void M1()
    {
        int[] ints = new int[] { 1, 2, 3 };
        foreach (int i in ints)
        {
            int *j = &i;  // CS0459
        }

        fixed (int *i = &_i)
        {
            int **j = &i;  // CS0459
        }
    }

    private int _i = 0;
}

참고

Roslyn 컴파일러가 업데이트되었고 이 컴파일러 오류는 Visual Studio 2017 버전 15.5부터 제거되었으므로 이전 코드는 이 버전 이상에서 성공적으로 컴파일됩니다.