public class A
{
private void MethodA(){}
}
public class B
{
private void MethodB() { }
}
public class C
{
private void MethodC() { }
}
我想确保只能从 MethodB
调用 MethodA
。其他方法永远不能调用MethodA
。
最佳答案
制造MethodA
protected 并像这样使用继承:
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
私有(private)的。像这样:
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/