영어로 읽기

다음을 통해 공유


컴파일러 경고(수준 1) CS0420

‘identifier’: volatile 필드에 대한 참조는 volatile로 처리되지 않습니다.

volatile 필드는 함수 범위 내에서 volatile로 처리되지 않으므로 일반적으로 ref 또는 out 매개 변수를 사용하여 전달해서는 안 됩니다. 단, interlocked API를 호출하는 경우 등은 예외입니다. 모든 경고와 마찬가지로, 드물긴 하지만 의도적으로 volatile 필드를 참조 매개 변수로 사용하는 경우 #pragma warning을 통해 이 경고를 해제할 수 있습니다.

다음 샘플에서는 CS0420을 생성합니다.

C#
// 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
   }  
}