第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的
基类中的修饰符,其实就是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的一种方式,就是多看小微自己工程师写的代码,会叫你受益匪浅!
本文转自博客园张占岭(仓储大叔)的博客,原文链接:第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的,如需转载请自行联系原博主。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
lnmp如何实现伪静态,默认目录伪静态
LNMP一键安装包一直是我小内存VPS的首选安装环境,因为它占用资源少,性能高。最新发布的lnmp0.7还增加了对LNMPA的支持,LNMPA使用Nginx作为前端服务能够更快更及时的静态页面、js、图片等,当客户端请求访问动态页面时由Nginx的反向代理给Apache处理,Apache处理完再交予Nginx返回给客户端。采用LNMPA能够更好的解决LNMP架构中由于PHP-FPM方面产生的502错误,同时提供更安全的多用户多站点环境。 众所周知,LNMP默认添加了Discuz、Wordpress、Sablog、emlog、dabr等伪静态支持,在新建虚拟主机时,输入以上名称就能对上述程序伪静态完美支持。如果,您还需要添加自定义伪静态规则,直接输入一个你想要的伪静态规则的名称,然后编辑/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则。 LNMP的介绍中,写了新建虚拟主机的伪静态规则的问题,但是,有朋友就问我:我在安装LNMP环境的时候,已经输入了域名,我想用这个域名做站,这个的伪静态规则在哪里写呢?好了,今天,主要就来说说这个问题。 我们以...
- 下一篇
整合微信小程序的Web API接口层的架构设计
在我前面有很多篇随笔介绍了Web API 接口层的架构设计,以及对微信公众号、企业号、小程序等模块的分类划分。例如在《C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系》介绍了相关模块的划分,在《基于微信小程序的系统开发准备工作》介绍了WebAPI的架构设计思路。本篇随笔对之前介绍的架构内容进行统一的调整更新,以便更加方便实际项目的应用开发,以期达到统一、重用、清晰的目的。 1、公众号、企业号、小程序模块的划分 我们知道,目前微信企业应用,分为公众号、企业号(企业微信)、小程序三种应用模式,对于常规的开发来说,我们对每个模式的应用都分为了两个不同的部分,一个是和业务数据相关的数据管理、一个是和API接口相关的API管理,两者整合为一个完整的应用。 公众号、企业号(企业微信)、小程序三种应用模式的模块划分如下图所示。 业务数据管理模块,一般还需要调用API接口进行相关的处理操作,因此他们之间的项目引用关系如下所示 另外,这三种类型的API接口也公用了一些业务对象和实体类,因此把它们抽取出来作为公共项目模块,如这三类接口项目统一使用了一个公共实体类项目。 除了这些之外,我们...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案