Sdílet prostřednictvím


Compilerfehler CS1540

Aktualisiert: November 2007

Fehlermeldung

Auf den geschützten Member "Member" kann nicht über einen Qualifizierers vom Typ "Typ1" zugegriffen werden. Der Qualifizierer muss vom Typ "Typ2" (oder von ihm abgeleitet) sein.s
Cannot access protected member 'member' via a qualifier of type 'type1'; the qualifier must be of type 'type2' (or derived from it)

Obwohl eine abgeleitete Klasse auf geschützte Member ihrer Basisklasse zugreifen kann, ist dies nicht über eine Instanz der Basisklasse möglich.

Im folgenden Beispiel wird CS1540 generiert:

// CS1540.cs
public class Base
{
   protected void func()
   {
   }
}

public class Derived : Base
{
   public static void test(Base anotherInstance)
   // the method declaration could be changed as follows
   // public static void test(Derived anotherInstance)
   {
      anotherInstance.func();   // CS1540
   }
}

public class Tester : Derived
{
   public static void Main()
   {
      Base pBase = new Base();
      // the allocation could be changed as follows
      // Derived pBase = new Derived();
      test(pBase);
   }
}