由于“成员变量”的保护级别,无法访问
类成员 的访问修饰符 阻止访问该成员。 有关详细信息,请参阅 访问修饰符。
扩展成员 无法访问其扩展类型的私有成员。
原因之一(不在下面的示例中显示)可能是省略了友元程序集目标的 /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
}
}