次の方法で共有


コンパイラ エラー CS0122

'member' は、その保護レベルによりアクセスできません

クラス メンバーの アクセス修飾子 を使用すると、メンバーにアクセスできなくなります。 詳細については、「アクセス修飾子」を参照してください。

拡張メンバー は、拡張している型のプライベート メンバーにアクセスできません。

この原因の 1 つは (以下のサンプルでは示されていません)、フレンド アセンブリのターゲットの /out コンパイラ フラグを省略することです。 詳細については、「 フレンド アセンブリOutputAssembly (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
    }
}