public class A
{
private void MethodA(){}
}
public class B
{
private void MethodB() { }
}
public class C
{
private void MethodC() { }
}
我想确保只能从
MethodA
调用MethodB
。其他方法永远不能调用MethodA
。 最佳答案
使MethodA
受保护并像这样使用继承:
public class A
{
protected void MethodA()
{
}
}
public class B : A
{
private void MethodB()
{
//MethodA is accessible just here
}
}
public class C
{
private void MethodC()
{
//MethodA is not accessible here
}
}
但是,如果您不想使用继承并且希望所有类都在同一程序集中,则只能将类
B
嵌套在类A
中,并保持MethodA
私有。像这样:public class A
{
private void MethodA()
{
}
public class B
{
private void MethodB()
{
A a = new A();
a.MethodA();
}
}
}
public class C
{
private void MethodC()
{
//MethodA is not accessible here
}
}
public class D : A
{
private void MethodC()
{
//MethodA is not accessible here
}
}
关于c# - 如何确保只能从特定的类调用类的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35969018/