Error del compilador CS0038

Actualización: noviembre 2007

Mensaje de error

No se puede obtener acceso a un miembro no estático de tipo externo 'tipo1' mediante el tipo anidado 'tipo2'
Cannot access a nonstatic member of outer type 'type1' via nested type 'type2'

Un campo de una clase no queda automáticamente disponible para una clase anidada. Para que esté disponible en una clase anidada, el campo debe ser static. De otra forma, se deberá crear una instancia de la clase externa. Para obtener más información, vea Tipos anidados (Guía de programación de C#).

El código siguiente genera el error 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()
   {
   }
}