第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的
基类中的修饰符,其实就是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的一种方式,就是多看小微自己工程师写的代码,会叫你受益匪浅!
第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的相关推荐
- 【小白学习C++ 教程】十一、C++类中访问修饰符
@Author:Runsen 类是面向对象编程.它是一种用户定义的数据类型,它拥有自己的数据成员和成员函数,可以通过创建该类的实例来访问和使用它们. 一个对象是一个类的实例.定义类时,不会分配内存,但 ...
- 继承(四):new方法都与基类中方法无关
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Inher ...
- 第三回 基类中的方法,应该根据实际情况,虚的虚,抽象的抽象!
今天主要说一下基类中的方法和属性,既然把这东西放进了基类,那有一点可以肯定的是,它们是公用的,这种公用的实现可能由基类自己实现,也可能是子类去实现,对于这句话,会有三种情况:(以方法以例) 1 基类中 ...
- C#中什么是类,类和对象的关系,类的访问修饰符?
类以及类和对象的关系以及类的访问修饰符 一.类的概念: 二.类和对象的关系: 三.类的组成: 四.类的创建: 五.类的访问修饰符: 一.类的概念: 类是对于某一类对象的一个统称,类是对象的抽象化,对象 ...
- 《Python面向对象编程指南》——1.2 基类中的__init__()方法
本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...
- C++多继承中重写不同基类中相同原型的虚函数
在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数.下面就是一个例子: class CBaseA { public: virtual void TestA(); }; class ...
- 在c++中,如果派生类没有重写基类中对应virtual函数会怎样?
在c++中,如果一个派生类没有重写基类中对应的虚函数,那么在派生类的构造函数中依然会创建虚指针,但是该虚指针指向的是基类的虚表. #include <iostream> #include ...
- swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用
浅谈swift中闭包修饰符 weak?unowned? 或什么都不用 平常的开发中,clourse是我们iOSr绕不过去的坎儿. 苹果本身也很重视闭包,像之前的一些老的target-action类型的 ...
- 知其然(3)*.java文件中可以包含多个类,但最多只能有一个类,其修饰符为public
*.java文件中可以包含多个类,但最多只能有一个类,其修饰符为public. 测试1:文件名Dog.java,文件内容如下:[2个类均为public] public class Dog{Dog(){ ...
最新文章
- Java学习_day005:循环结构
- 嬴彻科技完成L4级重卡无人驾驶路测
- html跳转过度,jq实现锚点跳转过度
- julia(4)-if ,else
- Hadoop 02_初学必知
- 2015-03-19 header note update in my Appointment
- 《此生未完成》痛句摘录(一)
- 我的程序员偶像在哪里?
- 东大OJ-Max Area
- 使用普通asp.net编程方式开发WAP应用的可行性
- 可以嵌入ppt的课堂点名器_宏大智慧课堂支招:孩子和学霸的差距,就在课上课下55分钟里...
- 创建CHM格式电子书
- 计算机资源管理器出问题怎么办,电脑资源管理器运行异常导致任务栏出现问题...
- 榆熙电商:拼多多怎样判断商品是否被降权?原因有哪些?
- 将Chrome浏览器网页背景改成豆绿色
- 锐龙r7 6800u和酷睿i7 11800h差距 r76800u和i711800h对比
- 中国物联网微控制器市场现状研究分析与发展前景预测报告(2022)
- RateLimiter高并发访问限流
- 使用java开发spark实战
- 用二进制数字串生成二维码图片
热门文章
- linux驱动设备树
- oracle和arcgis优势,Oracle spatial 使用的一些感受
- 大一java实训报告1500字_从800字小作文,到3000字小论文你用了多久? | 校媒FM
- 利用WiFi模块实现MicroPython远程开发
- 强度光照模块rimg02 BH1750光度传感器模块
- python字符串用android,通过s从android客户端向python服务器发送字符串
- dede 表单必填_织梦dedecms自定义表单选项必填怎么修改
- 2021湖南高考成绩分段查询,2021年湖南高考分数一分一段位次表,湖南高考个人成绩排名查询方法...
- mysql下载之后找不见_Win7系统中安装mysql后找不到服务或出现找不到指定文件怎么办?...
- cmd html 查找汉子字,字符串查找 cmd find命令