Partager via


Avertissement du compilateur (niveau 1) CS0420

Mise à jour : novembre 2007

Message d'erreur

'identificateur' : une référence à un champ volatile ne sera pas traitée comme volatile
'identifier': a reference to a volatile field will not be treated as volatile

Normalement, un champ volatile ne doit pas être passé à l'aide d'un paramètre ref ou out, car il ne sera pas traité comme volatile dans la portée de la fonction. Il existe des exceptions, par exemple lors de l'appel d'une API verrouillée. Comme avec tout avertissement, vous pouvez utiliser #pragma warning pour désactiver cet avertissement dans les cas rares où vous utilisez volontairement un champ volatile comme paramètre de référence.

L'exemple suivant génère l'erreur 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 
   }
}