zoukankan      html  css  js  c++  java
  • 第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的

    基类中的修饰符,其实就是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的一种方式,就是多看小微自己工程师写的代码,会叫你受益匪浅!

  • 相关阅读:
    JavaScript在web自动化测试中的作用
    Python使用Pandas高效处理测试数据
    git update-index --assume-unchanged忽略跟踪
    git reset三种模式
    Python Unittest根据不同测试环境跳过用例详解
    python ddt 实现数据驱动
    测试用例重要性暨动端测试用例设计总结
    jenkins执行selenium自动化测试浏览器不显示解决方法
    《过目不忘的读书法》 读书笔记
    memcached 学习
  • 原文地址:https://www.cnblogs.com/lori/p/2639082.html
Copyright © 2011-2022 走看看