Compiler Error CS0677

'variable': a volatile field cannot be of the type 'type'

Fields declared with the volatile keyword must be one of the following types:

  • Any reference type

  • Any pointer type (in an unsafe context)

  • The types sbyte, byte, short, ushort, int, uint, char, float, bool

  • Enum types based on any of the above types

The following sample generates CS0677:

// CS0677.cs  
class TestClass  
   private volatile long i;   // CS0677  
   public static void Main()