Avviso del compilatore (livello 1) CS0420

Aggiornamento: novembre 2007

Messaggio di errore

'identificatore': un riferimento a un campo volatile non verrà trattato come volatile.
'identifier': a reference to a volatile field will not be treated as volatile

In genere, un campo volatile non deve essere passato utilizzando un parametro ref o out, perché non verrebbe considerato volatile nell'ambito della funzione. Esistono tuttavia delle eccezioni, ad esempio la chiamata ad API interlocked. Questo avviso, analogamente agli altri, può essere disattivato tramite la direttiva #pragma warning, nei rari casi in cui viene intenzionalmente utilizzato un campo volatile come parametro di riferimento.

Il seguente codice di esempio genera l'avviso 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 
   }
}