我有一个 A 类,我需要从中访问 B 类的 protected 成员,就像在 C++ 中使用 friend 关键字一样。但是,内部修饰符不适合我的需要。 B 类需要创建 A 类的实例,修改其私有(private)数据,并返回对该类的引用。这些 A 类成员需要对原始调用者保密。
public class A
{
protected int x;
}
public class B
{
public static A CreateClassA()
{
A x = new A();
x.x = 5; // ERROR : No privilege
return x;
}
}
最佳答案
您可以使用 protected internal
而不是 internal
来访问同一程序集中的所有类,以及其他程序集中的子类:
public class A
{
protected internal int x;
}
public class B
{
public static A CreateClassA()
{
A x = new A();
x.x = 5; // hurray
return x;
}
}
关于c# - 访问另一个类的 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375090/