Errore del compilatore CS0038

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile accedere a un membro non statico di tipo outer 'tipo1' tramite il tipo nidificato 'tipo2'.
Cannot access a nonstatic member of outer type 'type1' via nested type 'type2'

Un campo di una classe non viene automaticamente reso disponibile per una classe nidificata. A questo scopo, è necessario che tale campo sia di tipo static. In alternativa, è possibile creare un'istanza della classe outer. Per ulteriori informazioni, vedere Tipi nidificati (Guida per programmatori C#).

Il seguente codice di esempio genera l'errore CS0038:

// CS0038.cs
class OuterClass
{
   public int count;
   // try the following line instead
   // public static int count;

   class InnerClass
   {
      void func()
      {
         // or, create an instance
         // OuterClass class_inst = new OuterClass();
         // int count2 = class_inst.count;
         int count2 = count;   // CS0038
      }
   }

   public static void Main()
   {
   }
}