컴파일러 경고(수준 1) CS0420
업데이트: 2007년 11월
오류 메시지
'identifier': volatile 필드에 대한 참조는 volatile로 처리되지 않습니다.
'identifier': a reference to a volatile field will not be treated as volatile
volatile 필드는 함수 범위 내에서 volatile로 처리되지 않으므로 ref 또는 out 매개 변수를 사용하여 전달할 수 없습니다. 단, interlocked API를 호출하는 경우 등은 예외입니다. 의도적으로 volatile 필드를 참조 매개 변수로 사용하는 경우 경고가 발생하면 #pragma warning을 사용하여 이 경고를 비활성화할 수 있습니다.
다음 샘플에서는 CS0420 오류가 발생하는 경우를 보여 줍니다.
// CS0420.cs
// compile with: /W:1
using System;
class TestClass
{
private volatile int i;
public void TestVolatile(ref int ii)
{
}
public static void Main()
{
TestClass x = new TestClass();
x.TestVolatile(ref x.i); // CS0420
}
}