我希望能够限制哪些类有权调用另一个类的方法。我有以下内容:
public class A: B
{
private void DoSomething()
{
C.Method1(); // should compile
}
}
public abstract class B
{
}
public class D
{
private void DoSomething()
{
C.Method1(); // shouldn't compile
}
}
public static class C
{
public static void Method1()
{
}
public static void Method2()
{
...
Method1();
...
}
}
所有这些类都在同一个程序集中,但是B类在不同的程序集中。
我的目标是让A级能够调用C.Method1,但让D级无法调用C.Method1
我在考虑将C类作为父类,并让A类继承B类,但A类已经从B类继承。
Method1不属于A类或B类。
实际用途是当Method1是一个实用方法时,只能由A类和C类调用
答案 0 :(得分:3)
如果没有移动方法,则必须使C
非 - static
,使Method1
protected
,然后B
继承C
1}},看起来像:
public class A : B
{
private void DoSomething()
{
C.Method1(); // should compile
}
}
public abstract class B : C
{
}
public class D
{
private void DoSomething()
{
C.Method1(); // shouldn't compile
}
}
public class C
{
protected static void Method1()
{
}
}