第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的

简介:

基类中的修饰符,其实就是C#里的那几种修饰符,public ,proteced,internal,privat这四种基础类型,当然也还一个组合类型internal protected,它们都是C#里最基础的东西,今天觉得有必要再说一下。

我还是觉得单讲修饰符,除了不好理解外,还有就是没什么意义,我们一定要把代码放到项目中才有它的价值,不是吗,呵呵。

一 public ,希望在所有地方都使用的成员,如一个获得结果集的方法

1        public virtual IQueryable<TEntity> GetEntities<TEntity>() where TEntity : class
2         {
3             return EF_DB.Set<TEntity>();
4         }

二 internal,只在本程序集中使用这个成员,对外部不可见,如一个数据层的工厂类,它用来创建数据上下文

1  internal sealed class DbFactory
2     {
3         #region Fields
4         static System.Timers.Timer sysTimer = new System.Timers.Timer(10000);
5         volatile static Dictionary<Thread, DbContext[]> divDataContext = new Dictionary<Thread, DbContext[]>();
6         #endregion
7    }

三 protected,它只对子类(派生类)公用访问权,这对于基类中的一些只对子类公开的属性与方法比较奏效

 1         /// <summary>
 2         /// 统一数据上下文对象
 3         /// </summary>
 4         protected DbContext EF_DB;
 5 
 6         #region Constructors
 7         public DataBase(DbContext ef_DB)
 8             : this(() => { return ef_DB; })
 9         { }
10         public DataBase(Func<DbContext> func)
11         {
12             this.EF_DB = func();
13         }
14         #endregion

四 private,本类内部使用的对象,对外部隐藏,一般是对一些复杂的代码进行提取,形成一个独立的单一功能的方法

 1          /// <summary>
 2         /// 排序操作方法
 3         /// </summary>
 4         /// <typeparam name="TEntity"></typeparam>
 5         /// <typeparam name="TKey"></typeparam>
 6         /// <returns></returns>
 7         void AddOrderByList(Expression<Func<TEntity, object>> predicate)
 8         {
 9             OrderByList.Add(predicate);
10         }

OK,以上四种修饰符大家如果能完全掌握,我觉得就够用了,呵呵。

还有,学习.net的一种方式,就是多看小微自己工程师写的代码,会叫你受益匪浅!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的,如需转载请自行联系原博主。

目录
相关文章
|
2月前
|
安全 Java 开发者
JDK 9:模块化系统——重新定义Java的模块化架构
JDK 9引入了模块化系统,对Java的模块化架构进行了彻底的重新定义。本文将深入探讨模块化系统的原理、优势以及如何在实际开发中应用这一特性。
|
3月前
软件架构的定义
软件架构的定义
|
8月前
|
存储 分布式计算 安全
分布式文件系统(HDFS产生背景及定义 HDFS优缺点 HDFS体系架构 HDFS文件块大小)
分布式文件系统(HDFS产生背景及定义 HDFS优缺点 HDFS体系架构 HDFS文件块大小)
156 0
|
4月前
|
缓存 Java 关系型数据库
Spring Boot实现RESTful接口架构实战(包括REST的讲解、定义、REST服务测试)
Spring Boot实现RESTful接口架构实战(包括REST的讲解、定义、REST服务测试)
52 0
|
9月前
|
消息中间件 负载均衡 监控
系统架构演变和SpringCloud的定义:
系统架构演变和SpringCloud的定义:
77 0
|
9月前
|
前端开发 Java 数据库
欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。(三)
欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。(三)
79 0
|
9月前
|
前端开发 Java 数据库
欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。(二)
欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。(二)
48 0
|
9月前
|
前端开发 搜索推荐 Java
欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。(一)
欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。(一)
64 0
|
11月前
|
Cloud Native
带你读《云原生架构白皮书2022新版》——云原生架构定义(上)
带你读《云原生架构白皮书2022新版》——云原生架构定义(上)
243 0
|
11月前
|
存储 运维 Cloud Native
带你读《云原生架构白皮书2022新版》——云原生架构定义(下)
带你读《云原生架构白皮书2022新版》——云原生架构定义(下)
207 1