C#中的 internal 和 private 访问修饰符有什么区别?
internal
private
Private 成员只能在类的主体或声明它们的结构体中访问 .
Internal 类型或成员只能在同一程序集中的文件中访问
private - 类/范围/结构中的封装' .
internal - 程序集中的封装 .
内部将允许您在多个业务逻辑类之间引用数据访问静态类(用于线程安全),而不是订阅它们以在连接池中继承该类/跳过彼此,并最终避免允许DAL类促进公共层面的访问 . 这在设计和最佳实践方面有无数的支持 .
实体框架充分利用了这种类型的访问
internal 用于汇编范围(即只能从同一.exe或.dll中的代码访问)
private 用于类范围(即只能从同一类中的代码访问) .
在下面找到解释 . 您可以查看此链接了解更多详情 - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Private: - 私有成员只能在自己的类型(自有类)中访问 .
Internal: - 内部成员只能通过继承(其派生类型)或类实例在程序集中访问 .
Reference :
internal 成员对于声明它们的程序集中的所有代码都是可见的 .(以及使用[InternalsVisibleTo] attribute引用的其他程序集)
private 成员仅对声明类可见 . (包括嵌套类)
外部(非嵌套)类不能声明为 private ,因为没有包含使其成为私有的作用域 .
要回答您忘记提出的问题, protected 成员就像 private 成员,但在继承声明类型的所有类中也可见 . (但仅限于至少表达当前类的类型)
protected
6 回答
Private 成员只能在类的主体或声明它们的结构体中访问 .
Internal 类型或成员只能在同一程序集中的文件中访问
private - 类/范围/结构中的封装' .
internal - 程序集中的封装 .
内部将允许您在多个业务逻辑类之间引用数据访问静态类(用于线程安全),而不是订阅它们以在连接池中继承该类/跳过彼此,并最终避免允许DAL类促进公共层面的访问 . 这在设计和最佳实践方面有无数的支持 .
实体框架充分利用了这种类型的访问
internal 用于汇编范围(即只能从同一.exe或.dll中的代码访问)
private 用于类范围(即只能从同一类中的代码访问) .
在下面找到解释 . 您可以查看此链接了解更多详情 - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Private: - 私有成员只能在自己的类型(自有类)中访问 .
Internal: - 内部成员只能通过继承(其派生类型)或类实例在程序集中访问 .
Reference :
dotnetbull - c#中的访问修饰符是什么
internal
成员对于声明它们的程序集中的所有代码都是可见的 .(以及使用[InternalsVisibleTo] attribute引用的其他程序集)
private
成员仅对声明类可见 . (包括嵌套类)外部(非嵌套)类不能声明为
private
,因为没有包含使其成为私有的作用域 .要回答您忘记提出的问题,
protected
成员就像private
成员,但在继承声明类型的所有类中也可见 . (但仅限于至少表达当前类的类型)