Answers:
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的访问。
internal和所有方法public。如果需要更高的可见性,则可以public再次将整个类设置为。但是我不确定是否打算以这种方式使用它。所以我继续谷歌搜索... 编辑
internal在编写单元测试时也很有用。该InternalsVisibleTo属性让您的测试程序集访问代码程序集中的内部方法。即,您可以测试对外界似乎不公开的方法,而无需使用反射。
也可以在程序集外部访问Public。因此,当您拥有不应访问的类时,程序集中的每个类都应该能够访问它,那么内部是正确的事情。如果您需要外部访问,请使用public。