C# 中的
internal
和 private
访问修饰符有什么区别?
internal 适用于程序集范围(即只能从同一 .exe 或 .dll 中的代码访问)
private 用于类范围(即只能从同一类中的代码访问)。
请在下面找到解释。您可以查看此链接了解更多详细信息 - http://web.archive.org/web/20230209015322/https://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
私有:私有成员只能在自己的类型(Own class)内访问。
内部:内部成员只能在程序集中通过继承(其派生类型)或通过类的实例访问。
internal
成员对于声明它们的程序集中的所有代码都是可见的。[InternalsVisibleTo]
属性引用的其他程序集)
private
成员仅对声明类可见。 (包括嵌套类)
无法声明外部(非嵌套)类
private
,因为没有包含范围可以使其私有。
回答您忘记问的问题,
protected
成员类似于private
成员,但在继承声明类型的所有类中也可见。 (但仅限于至少当前类类型的表达式)
内部成员可以在程序集中访问(只能在同一项目中访问)
私有成员可以在同一个类中访问
解决方案中有 2 个项目(Project1、Project2),并且 Project1 引用了 Project2。
私有成员只能在类主体或声明它们的结构中访问。
内部类型或成员只能在同一程序集中的文件中访问
private - 类/作用域/结构体等中的封装。
内部 - 封装在组件中。
Internal 将允许您在多个业务逻辑类之间引用数据访问静态类(用于线程安全),同时不订阅它们以在连接池中相互继承该类/行程,并最终避免允许 DAL类,以促进公众层面的访问。 这在设计和最佳实践方面有无数的支持。
实体框架很好地利用了这种类型的访问