編譯器錯誤 CS0122

「成員」因其保護層級而無法存取

類別成員的 存取修飾符 會阻止存取該成員。 如需詳細資訊,請參閱 存取修飾元

擴展成員無法存取他們所擴展類型的私人成員。

其中一個原因(下方範例未顯示)可能是未在朋友組件的目標中使用編譯器標誌 /out 。 欲了解更多資訊,請參閱 Friend AssembliesOutputAssembly(C# 編譯器選項)。

Example

以下範例產生 CS0122:

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