Advertencia del compilador (nivel 1) CS0420

Actualización: noviembre 2007

Mensaje de error

'identificador': una referencia a un campo volátil no se tratará como tal
'identifier': a reference to a volatile field will not be treated as volatile

Normalmente, no se debe pasar un campo volatile mediante un parámetro ref u out, puesto que no se tratará como volátil dentro del ámbito de la función. Existen excepciones a esta norma, como cuando se llama llamar a una API enclavada. Como con cualquier advertencia, puede utilizar #pragma warning para deshabilitar esta advertencia en los infrecuentes casos en que se utilice un campo volatile de manera intencionada como parámetro de referencia.

El código siguiente genera el error 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 
   }
}