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下载安装与简单增删改查 前 ...
随机推荐
- LINQ - 在Where條件式中使用in與not in
希望对大家在以后的项目中能用到,我也是在项目中碰到了这个问题: 算算時間,接觸LINQ也有一個月的時間了,可以算是落伍兼新生,不過最近在寫專案的時候,遇到了在LINQ的Where條件式中要如何使用in ...
- 纯脚本组装Json格式字符串
var answerStr = "["; for (var i in answer) { var data = $("input[name=QuestionItem_&q ...
- JSON与JAVA数据的转换
1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "sec ...
- 【洛谷P2866】Bad Hair Day
单调栈版子 #include<cstdio> #include<cstring> using namespace std; ; ,zh[N]; int read(){ ; ch ...
- Oracle中rownum和rowid的理解(转)
本文转自地址http://www.linuxidc.com/Linux/2012-04/58300.htm rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每 ...
- Mac下升级Nodejs
突然发现系统中的nodejs版本比较旧,想升级一下但又不想下载安装包一步一步安装, 发现还是可以很简单用命令行升级的. 首先得清理npm的缓存 sudo npm cache clean -f 安装 n ...
- java-注解
概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据与程序元素(类.方法.成员变量等)进行关联.更通俗的意思是为程序 ...
- web
1.linux下交换文件 .index.php.swp 有时可查看源码2.当php后缀被过滤的时候可以直接对ph开头的后缀进行一个fuzz测试可以上传的文件后缀名3.curl -x 123.45.67 ...
- Linux内核--网络栈实现分析(七)--数据包的传递过程(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地 ...
- kvm虚拟机--存储池配置梳理(转)
1.创建基于文件夹的存储池(目录) 2.定义存储池与其目录 1 # virsh pool-define-as vmdisk --type dir --target /data/vmfs 3.创建已定义 ...