Freigeben über


Compilerfehler CS0122

Auf "Mitglied" kann aufgrund seiner Schutzebene nicht zugegriffen werden.

Der Zugriffsmodifizierer für ein Klassenmitglied verhindert den Zugriff auf das Element. Weitere Informationen finden Sie unter Zugriffsmodifikatoren.

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

Eine Ursache hierfür (nicht im folgenden Beispiel gezeigt) kann das Weglassen des /out-Compiler-Flags bei einer Freundassembly sein. Weitere Informationen finden Sie unter Friend Assemblies and OutputAssembly (C#Compiler Options).

Example

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
    }
}