第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的
2012-08-14 23:22
363 查看
基类中的修饰符,其实就是C#里的那几种修饰符,public ,proteced,internal,privat这四种基础类型,当然也还一个组合类型internal protected,它们都是C#里最基础的东西,今天觉得有必要再说一下。
我还是觉得单讲修饰符,除了不好理解外,还有就是没什么意义,我们一定要把代码放到项目中才有它的价值,不是吗,呵呵。
一 public ,希望在所有地方都使用的成员,如一个获得结果集的方法
二 internal,只在本程序集中使用这个成员,对外部不可见,如一个数据层的工厂类,它用来创建数据上下文
三 protected,它只对子类(派生类)公用访问权,这对于基类中的一些只对子类公开的属性与方法比较奏效
四 private,本类内部使用的对象,对外部隐藏,一般是对一些复杂的代码进行提取,形成一个独立的单一功能的方法
OK,以上四种修饰符大家如果能完全掌握,我觉得就够用了,呵呵。
还有,学习.net的一种方式,就是多看小微自己工程师写的代码,会叫你受益匪浅!
我还是觉得单讲修饰符,除了不好理解外,还有就是没什么意义,我们一定要把代码放到项目中才有它的价值,不是吗,呵呵。
一 public ,希望在所有地方都使用的成员,如一个获得结果集的方法
public virtual IQueryable<TEntity> GetEntities<TEntity>() where TEntity : class { return EF_DB.Set<TEntity>(); }
二 internal,只在本程序集中使用这个成员,对外部不可见,如一个数据层的工厂类,它用来创建数据上下文
internal sealed class DbFactory { #region Fields static System.Timers.Timer sysTimer = new System.Timers.Timer(10000); volatile static Dictionary<Thread, DbContext[]> divDataContext = new Dictionary<Thread, DbContext[]>(); #endregion }
三 protected,它只对子类(派生类)公用访问权,这对于基类中的一些只对子类公开的属性与方法比较奏效
/// <summary> /// 统一数据上下文对象 /// </summary> protected DbContext EF_DB; #region Constructors public DataBase(DbContext ef_DB) : this(() => { return ef_DB; }) { } public DataBase(Func<DbContext> func) { this.EF_DB = func(); } #endregion
四 private,本类内部使用的对象,对外部隐藏,一般是对一些复杂的代码进行提取,形成一个独立的单一功能的方法
/// <summary> /// 排序操作方法 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <typeparam name="TKey"></typeparam> /// <returns></returns> void AddOrderByList(Expression<Func<TEntity, object>> predicate) { OrderByList.Add(predicate); }
OK,以上四种修饰符大家如果能完全掌握,我觉得就够用了,呵呵。
还有,学习.net的一种方式,就是多看小微自己工程师写的代码,会叫你受益匪浅!
相关文章推荐
- js特殊例子--方法内重新定义了变量在后面就会前面的为undifined,后面没有定义就用全局的--各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函
- 定义一个类,封装矩形的长和宽;在定义一个类,继承自定义的这个类,在继承类中根据基类中封装的矩形的长和宽求矩形的面积。
- 应该使用c# 预定义类型 还是绝对不要使用预定义类型。
- 到底什么是权限?我们应该如何正确理解“权限定义”(请高手指点)
- 到底什么是权限?我们应该如何正确理解“权限定义”(请高手指点)
- 友元关系与继承以及基类派生类定义构造函数时应该注意的事项
- C++中不应该为从基类继承的non-virtual函数重新定义
- QL语句通常不是很容易理解,特别是你阅读别人已经写好的语句。因此,很多人指出我们应该遵循在其他语言中遵循的原则,像加上注释和功能模块化。我最新注意到一个很多人都没有使用的Postgres关键特性,也就
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一(重点理解泛型方法和泛型通配符)
- 浅谈应该如何理解Oracle的架构知识
- 到底什么是权限?我们应该如何正确理解“权限定义”(请高手指点)
- 没有绝对的设计原则,应该允许特例。在特例面前,原则不适用。坚持原则,则原则将无法自圆其说
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- 微服务架构概念,应该怎样理解?【转】
- 世上本没有对错,看问题的角度不同,答案不同而已,我们应该学会常常用别人的角度看世界,多一分宽容,多一分理解,多一分求同存异。
- 从结亲网 的架构谈起,谈什么架构, 我理解的架构。我想很多人理解的架构应该可能比较 狭义
- 熟悉页面架构和布局,对Web标准和标签语义化有深入理解,到底应该说点啥
- 设计师应该怎样理解信息架构
- java代码:new 类名(){方法定义}应该如何理解?
- 初学者应该如何理解Oracle的架构知识