Freigeben über


Compilerfehler CS0122

Der Zugriff auf „member“ ist aufgrund der Sicherheitsebene nicht möglich.

Die Zugriffsmodifizierer für einen Klassenmember verhindert den Zugriff auf den Member. Weitere Informationen finden Sie unter Zugriffsmodifizierer.

Erweiterungsmethoden können nicht auf private Member des Typs zugreifen, den sie erweitern.

Eine Ursache (die nicht im folgenden Beispiel gezeigt wird) kann das Auslassen des Compilerflags /out für das Ziel einer Friend-Assembly sein. Weitere Informationen finden Sie unter Friend-Assemblys und unter OutputAssembly (C#-Compileroptionen).

Beispiel

Im folgenden Beispiel wird CS0122 generiert:

// CS0122.cs
public class MyClass
{
    private int data;

    void PrivateMethod() {}
    public void PublicMethod() {}
}

public static class MyClassExtensions
{
    public static int GetData(this MyClass myClass)
    {
        return myClass.data;   // CS0122
    }
}

public class Program
{
    public static void Main()
    {
        MyClass a = new MyClass();
        a.PrivateMethod();   // CS0122
        a.PublicMethod();   // OK
    }
}