컴파일러 오류 CS0459
읽기 전용 지역 변수의 주소를 가져올 수 없습니다.
읽기 전용 지역 변수를 생성하는 C# 언어의 세 가지 일반적인 시나리오는 foreach
, using
및 fixed
입니다. 각각의 경우에서 읽기 전용 지역 변수에 쓰거나 해당 주소를 가져올 수 없습니다. 이 오류는 컴파일러가 읽기 전용 지역 변수의 주소를 가져오려는 것을 확인할 때 발생합니다.
다음 예제에서는 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부터 제거되었으므로 이전 코드는 이 버전 이상에서 성공적으로 컴파일됩니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.