首页 > 其他 > 详细

观看视频后的笔记

时间:2020-03-25 19:59:11      阅读:51      评论:0      收藏:0      [点我收藏+]

泛型

2.0 泛型的好处和原理
泛型:解决代码重用,满足不同类型的参数 可以用相同的方法
          调用的时候 不需要声明类型,由编译器推断出来
          但是 类型参数和参数必须匹配

泛型的思想 就是延迟声明
延迟声明:把参数类型的声明推迟到调用的时候声明
架构设计有一句话: 延迟 ,推迟一切可以推迟的东西

System.Collections.Generic.List`1[System.Int32]
___ ` 表示 占位符, 有几个类型参数 就显示几

IL:中间语言

{}叫做code block,代码块。
代码块的作用有两个,一个是作为界符,比如一个if包含多个语句,那么如果没有{},就不知道if内执行的语句和if后执行的语句怎么区分
另一个是控制变量作用域

泛型约束,基类约束:
1 在泛型方法内可以直接使用基类的属性和方法
2 调用的时候,只能传递基类或者基类的子类
in 逆变,out 协变 只存在泛型接口或者泛型委托中  作用 扩展泛型的使用
out 协变 只能是返回结果 用于父类可以实例子类
int 协变 只能是参数 用于子类可以实例父类

 

反射

原理:ado.net提供的帮助类库,可以读取我们编译生成的metadata(元数据)里面的信息

作用一:通过配置文件App.config+简单工厂,可以把项目变成可配置的,可扩展


操作

引用命名空间 using System.Reflection;
//1 动态加载  默认加载当前路径的dll文件,不需要后缀
Assembly assembly = Assembly.Load("Ruanmou.DB.Sqlserver");
//2 获取类型 (获取类型信息的方式不止一个)
Type typeDBHelper = assembly.GetType("Ruanmou.DB.Sqlserver.DBHelper");
//3 创建对象
object oDBHelper = Activator.CreateInstance(typeDBHelper);

  

简单工厂

原理:把创建对象的代码转移到另一个类,好处就是逻辑独立

案例

  public class SimpleFactory
    {        //IDBHelper 配置文件里面的key
        private static string IDBHelperConfig = ConfigurationManager.AppSettings["IDBHelper"];

        public static IDBHelper CreateDBHelper()
        {
            string dllName = IDBHelperConfig.Split(‘,‘)[1];
            string className = IDBHelperConfig.Split(‘,‘)[0];

            Assembly assembly = Assembly.Load(dllName);
            Type type = assembly.GetType(className);
            object oObject = Activator.CreateInstance(type);
            return (IDBHelper)oObject;

        }
    }

  

 

观看视频后的笔记

原文:https://www.cnblogs.com/shanshuiYiCheng/p/12568603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!