我想知道public
和internal
可见性修饰符之间的区别。
我们什么时候应该在类上使用internal
?何时使用public
?当方法应为public
或internal
时,我感到困惑。
我读到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/