CS0038 de erro do compilador

Mensagem de erro

Não é possível acessar membro do tipo externo 'tipo' via 'type2' do tipo aninhado

Um campo em uma classe não está automaticamente disponível para uma classe aninhada.Para ficar disponível para uma classe aninhada, o campo deve ser estático.Caso contrário, você deve criar uma instância da classe externa.Para obter mais informações, consulte Tipos aninhados (Guia de programação C#).

O exemplo a seguir gera 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()
   {
   }
}