以下类声明的含义是什么?
internal class A { }
public class B { }
我能够使用包含类A和B的程序集的引用,在另一个程序集中的另一个类中访问它们两个。在类方面,内部和公共访问修饰符有什么区别?
Internal只能在所属的程序集内部使用。
Public可以被任何引用所属程序集的程序集使用。
如果您可以从另一个程序集访问internal类,则可能已设置“InternalsVisibleTo”,或者您没有引用您认为的类。
AssemblyInfo.cs
文件中,你可以加入 [assembly:InternalsVisibleTo("AssemblyB")]
以便让内部类、方法等对 AssemblyB
可见。这通常用于测试目的。 - Logarrinternal 意味着它只能被同一程序集中的其他类访问。public 意味着它可以被所有其他类访问。
InternalsVisibleToAttribute
。 - LukazoidInternalsVisibleToAttribute
,否则你不应该能够从另一个程序集中访问internal
类A。也许你误解了程序集的定义? - Jan Paolo Go