C# 内部访问修饰符与专用访问修饰符
C#中的C# 内部访问修饰符与专用访问修饰符,c#,.net,private,access-modifiers,internal,C#,.net,Private,Access Modifiers,Internal,C#中的内部和私有访问修饰符之间有什么区别?内部成员在程序集中声明的所有代码都可见。 (以及使用引用的其他程序集) private成员仅对声明类可见。(包括嵌套类) 外部(非嵌套)类不能声明为私有的,因为没有使其私有的包含作用域 要回答您忘记问的问题,protected成员类似于private成员,但在继承声明类型的所有类中也可见。(但仅在至少为当前类类型的表达式上)内部用于程序集范围(即,只能从相同.exe或.dll中的代码访问) private用于类作用域(即只能从同一类中的代码访问)。pr
内部
和私有
访问修饰符之间有什么区别?内部
成员在程序集中声明的所有代码都可见。(以及使用引用的其他程序集)
private
成员仅对声明类可见。(包括嵌套类)
外部(非嵌套)类不能声明为私有的,因为没有使其私有的包含作用域
要回答您忘记问的问题,
protected
成员类似于private
成员,但在继承声明类型的所有类中也可见。(但仅在至少为当前类类型的表达式上)内部用于程序集范围(即,只能从相同.exe或.dll中的代码访问)
private用于类作用域(即只能从同一类中的代码访问)。private成员只能在声明它们的类体或结构中访问
内部只能在同一程序集中的文件中访问类型或成员请参见下面的说明。您可以查看此链接以了解更多详细信息- 私有:-私有成员只能在自己的类型(自己的类)中访问 内部:-内部成员只能通过继承(其派生类型)或类实例在程序集中访问 参考资料:
Internal将允许您在多个业务逻辑类之间引用(例如)一个数据访问静态类(用于线程安全),同时不订阅它们以在连接池中继承该类/彼此重叠,并最终避免允许DAL类在公共级别促进访问。这在设计和最佳实践方面有无数的支持
实体框架很好地利用了这种类型的访问私有-类/范围/结构等中的封装
内部-封装在程序集中。内部成员可在程序集中访问(仅可在同一项目中访问) 私有成员可以在同一类中访问 初学者示例 解决方案中有两个项目(Project1、Project2),Project1引用了Project2
- Project2中编写的公共方法将在Project2和Project1中访问
- 在Project2中编写的内部方法只能在Project2中访问,但不能在Project1中访问
- 在Project2的类1中编写的私有方法将只能被同一类访问。它在项目2的其他类别中(项目1除外)都不可访问
受保护的internal
提供了比受保护的
@Dan更广泛的访问权限,请完全同意。阅读并将受保护内部
视为受保护或内部
,可能会有所帮助。类型
意味着什么?@Dan yeah,我假设它只是一个真值表,和
矩阵为true | false | false表示受保护内部
。不直观。相反,它是真的|真的|真的|假的,好像或
。顺便说一句,C#7.2刚刚添加了一个“受保护和内部”修饰符,尽管实际选择的关键字,受私有保护的
,不是很直观。详情如下: