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