Поделиться через


Ошибка компилятора CS0038

Обновлен: Ноябрь 2007

Сообщение об ошибке

Невозможно получить доступ к нестатическому члену внешнего типа "type1" через вложенный тип "type2"
Cannot access a nonstatic member of outer type 'type1' via nested type 'type2'

У вложенного класса отсутствует автоматический доступ к полю в классе. Для наличия доступа поле должно быть статическим. Иначе необходимо создать экземпляр внешнего класса. Дополнительные сведения см. в разделе Вложенные типы (руководство по программированию на C#).

В следующем примере возникает ошибка 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()
   {
   }
}