c#中的内部访问修饰符和私有访问修饰符有什么区别?
当前回答
Private -类/作用域/结构等中的封装。
组件的内部封装。
其他回答
内部成员对声明它们的程序集中的所有代码都可见。 (以及使用[InternalsVisibleTo]属性引用的其他程序集)
私有成员仅对声明类可见。(包括嵌套类)
外部(非嵌套)类不能声明为私有的,因为没有包含作用域可以使其为私有的。
为了回答您忘记问的问题,受保护的成员就像私有成员一样,但在继承声明类型的所有类中也是可见的。(但只在至少是当前类类型的表达式上)
Private -类/作用域/结构等中的封装。
组件的内部封装。
Internal用于程序集范围(即只能从相同的。exe或。dll中的代码中访问)
Private用于类范围(即只能从同一类中的代码中访问)。
私有成员只能在声明它们的类或结构体内部访问。
内部类型或成员只能在同一程序集中的文件中访问
Internal将允许您在多个业务逻辑类之间引用数据访问静态类(为了线程安全),同时不订阅它们以在连接池中相互继承该类/行程,并最终避免允许DAL类在公共级别上促进访问。这在设计和最佳实践中有无数的支持。
实体框架很好地利用了这种类型的访问
推荐文章
- 如何从枚举中选择一个随机值?
- 驻留在App_Code中的类不可访问
- 在链式LINQ扩展方法调用中等价于'let'关键字的代码
- dynamic (c# 4)和var之间的区别是什么?
- Visual Studio: ContextSwitchDeadlock
- 返回文件在ASP。Net Core Web API
- 自定义HttpClient请求头
- 如果我使用OWIN Startup.cs类并将所有配置移动到那里,我是否需要一个Global.asax.cs文件?
- VS2013外部构建错误"error MSB4019: The imported project <path> was not found"
- 从另一个列表id中排序一个列表
- 等待一个无效的异步方法
- 无法加载文件或程序集…参数不正确
- c#中枚举中的方法
- 如何从字符串中删除新的行字符?
- 如何设置一个默认值与Html.TextBoxFor?