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、将对象从一个应用程序域发送到另一个应用程序域中。“值封送” 反序列化:反序列化则是从特定存储介质中的数据重新构建对象的过程
=========================================================================================================================== 反射的定义:审查元数据并收集关于它的类型信息的能力。
C#高级一的更多相关文章
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
- 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)
马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...
- JS高级前端开发群加群说明及如何晋级
JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明: 一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...
- C#高级知识点&(ABP框架理论学习高级篇)——白金版
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...
- Visual Studio 宏的高级用法
因为自 Visual Studio 2012 开始,微软已经取消了对宏的支持,所以本篇文章所述内容只适用于 Visual Studio 2010 或更早期版本的 VS. 在上一篇中,我已经介绍了如何编 ...
- [译]基于GPU的体渲染高级技术之raycasting算法
[译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...
- 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)
招聘单位是ABP架构设计交流群(134710707)群主阳铭所在的公司-上海运图贸易有限公司 招聘岗位:.NET高级开发工程师工作地点:上海-普陀区 [公司情况]上海运图贸易有限公司,是由易迅网的创始 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- MongoDB高级查询详细
前言 前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客 MongoDB下载安装与简单增删改查 前 ...
随机推荐
- 【转】怎样查出SQLServer的性能瓶颈
怎样查出SQLServer的性能瓶颈 --王成辉翻译整理,转贴请注明出自微软BI开拓者[url]www.windbi.com[/url]--原帖地址 如果你曾经做了很长时间的DBA,那么你会了解到SQ ...
- flashftp连接虚拟机centos报错的解决方法
flashftp连接虚拟机centos报错,一般情况可能是因为端口(22)的权限没有开放 先在centos中检查并开放22端口,执行:iptables -I INPUT -p tcp --dport ...
- oracle DBMS_LOCK.SLEEP()的使用
create or replace procedure times isii positive:=1;beginloop dbms_lock.sleep(1);dbms_output.put_line ...
- redis连接超时报错
应用程序连接redis超时,报错如下: ERROR DubboServerHandler-xxx.xx.xx.52:20880-thread-172 2016-12-21 15:25:20,429 c ...
- Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6
书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...
- C#将科大讯飞语音合成文件转换为MULAW音频格式
任务描述:通过科大讯飞语音合成组件在线完成文本转语音的合成,然后再转换为电话系统IVR要求的音频格式: wave mu-law 16位 8kHZ 64kbps. 完成步骤: 首先,我们要先通过科大讯飞 ...
- babylonjs
A Babylon.js Primer Table of contents Babylon.js WebGL Game Creation System! The Browser Useful Link ...
- 第52讲:Scala中路径依赖代码实战详解
今天学习了scala中的路径依赖,来看一下实战代码 class Outer{ private val x = 10 class Inner{ private val y = x +10 } ...
- js学习笔记之一
一.Javascript 中的对象 1. 建立自定义对象 方法1:对象={属性1:属性值1,属性2:属性值2……属性n:属性值n} 方法2:先定义构造函数,再new创建对象实例. 如: functio ...
- segmentControl实现控制器的切换
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...