C#高级一
1、单例模式:又叫单件模式,属于创建型模式分类。实际上讲,一个对象只允许创建一个实例,并且提供了一个全局的访问点。 (静态方法生命周期长,消亡时间短,GC不回收) ========================================================================================================== 2、ref与out的不同点体现在使用的机制上。 ref要求传递之前的参数必须首先显式初始化,而out不需要。 也就是说,使用ref的参数必须是一个实际的对象,而不能指向null;而使用out的参数可以接受指向null的对象,然后在调用方法内部必须完成对象的实体化。 ================================================================================================================= 3、泛型集合 要导入命名空间 System.Collections.Generic命名空间 定义List<T>泛型集合的语法: List<T> list = new List<T>();
T表明集合中管理的元素类型 泛型集合必须实例化
泛型集合List<T>与ArrayList 对比: 异同点 List<T> ArrayList 对所保存元素做类型约束 可以增加任何类型 不同点 添加/读取无须拆箱、装箱 添加/读取需要拆箱、装箱
相同点 通过索引访问集合中的元素 添加元素方法相同 删除元素方法相同 ---------------------------------------------- C#中泛型集合Dictionary<K,V> 存储数据的方式和哈希表类似 编译时检查类型约束,获取元素时无须进行类型转换 通过Key/Value(键/值对)来保存元素的
定义Dictionary<K,V>泛型集合的语法: Dictionary< K,V> dic = new Dictionary< K,V>(); <K,V>中的K表示集合中Key(键)的类型 V表示Value(值)的类型 泛型集合Dictionary<K,V>与Hashtable 对比: 异同点 Dictionary<K,V> Hashtable
对所保存元素做类型约束 可以增加任何类型 不同点 添加/读取无须拆箱、装箱 添加/读取需要拆箱、装箱
相同点 通过索引访问集合中的元素 添加元素方法相同 删除元素方法相同
================================================================================================================= 设计模式:将某类事做成一种统一规范,按照规范进行操作。 观察者模式:行为模式 两种角色 观察者 被观察者 N 1 观察者监视被观察者,当被观察者发生某些行为,观察者将触发自己行为。 两种模式: 推 拉 ------------------------------------------------------------- 创建型设计模式:单例模式
选择使用接口和委托的区别及效率: 使用接口实现观察者模式 观察者必须实现统一的接口 通知者能够获取观察者对象集合 须实现接口以降低耦合,通知者须知道实现接口的对象。
使用委托实现的观察者模式 无需通过集合的方式来进行对象的添加 通过+=的方式来实现事件的订阅 按照订阅的顺序进行依次进行广播操作
===================================================================================================================== 简单工厂:是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例
抽象工厂:
================================================================================================================== 多态:同一物体在不同情况下表现的多种形态 在程序里,一个类被其他类继承并且重写他的行为这就是多态的体现。 多态是一种形态,只要具备这种行为就叫多态;而里氏替换原则是发生父NEW的情况下,符合这种规则。
IS 是判断 AS 是强转
======================================================================================================================== 序列化:将对象的状态存储到存储媒介中的过程。 两个最重要的原因: 1、对象的状态永久保存在存储媒体中。“永久存储” 2、将对象从一个应用程序域发送到另一个应用程序域中。“值封送” 反序列化:反序列化则是从特定存储介质中的数据重新构建对象的过程
=========================================================================================================================== 反射的定义:审查元数据并收集关于它的类型信息的能力。