Partager via


Erreur du compilateur CS0038

Mise à jour : novembre 2007

Message d'erreur

Impossible d'accéder à un membre non static de type externe 'type1' par l'intermédiaire du type imbriqué 'type2'
Cannot access a nonstatic member of outer type 'type1' via nested type 'type2'

Un champ dans une classe n'est pas automatiquement disponible pour une classe imbriquée. Pour être disponible pour une classe imbriquée, le champ doit être de type static. Sinon, vous devez créer une instance de la classe externe. Pour plus d'informations, consultez Types imbriqués (Guide de programmation C#).

L'exemple suivant génère l'erreur 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()
   {
   }
}