我想知道publicinternal可见性修饰符之间的区别。

我们什么时候应该在类上使用internal?何时使用public?当方法应为publicinternal时,我感到困惑。

我读到internal可以通过程序集访问,而public也可以通过区别所在的程序集使用。

最佳答案

随时随地都可以看到public
internal仅在程序集中可见

您倾向于仅使用内部来保护内部API。例如,您可以公开一个方法的几个重载:

public int Add(int x, int y)
public int Add(int x,int y, int z)

两者都调用内部方法
internal int Add(int[] numbers)

然后,您可以在方法上添加很多技巧,但是可以使用立面方法“保护”它,这可以帮助程序员正确地调用该方法。 (例如,使用array参数的实现方法可以具有任意值的限制。)

同样值得注意的是,使用反射时,无论可见性如何,任何方法都可以调用。另一个“黑客”控制/获得对内部隐藏的API的访问。

关于c# - 内部与公共(public)在C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4182015/

10-12 00:01
查看更多