DesignPatternPrinciple(设计模式原则)二
摘要:设计模式六大原则(5):迪米特法则 定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是
阅读全文
posted @
2017-08-28 09:28
西码
阅读(434)
推荐(0)
DesignPatternPrinciple(设计模式原则)一
摘要:设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两
阅读全文
posted @
2017-08-27 11:03
西码
阅读(703)
推荐(1)
Thread(线程)四
摘要:今天继续讲讲线程的异常处理、线程取消、多线程的临时变量和线程安全lock的问题。 1、异步处理。 一般来说如果是同步方法的异步处理,我们大多都是try catch住,但是异步方法应该怎么做呢。 2、线程取消。 Task不能主动取消,就好比向CPU发起了一个请求,但是你中途想中断这个请求,在正常情况下
阅读全文
posted @
2017-08-04 16:41
西码
阅读(319)
推荐(0)
Thread(线程)三
摘要:今天我们继续接着线程讲讲,上一章提到一下task概念, 首先接着task继续往下讲,在前章节提到过Thread怎么实现其他线程完成后再让主线程继续执行的功能,那么如果Task也需要线程等待事件,该怎么实现呢? 在这里介绍四种方法。 1、ContinueWhenAny方法 这种做法是在等task对象l
阅读全文
posted @
2017-08-03 23:33
西码
阅读(257)
推荐(0)
Threads(线程)(二)
摘要:前一章我们提到了同步异步,多线程;在开始今天的文章之前,先来总结一下上一篇文章的内容,多线程的优点。 多线程有哪些优点呢,在这里通过代码依次来总结。 异步多线程的三大特点 1)同步方法卡界面,原因是主线程被占用;异步方法不卡界面,原因是计算交给了别的线程,主线程空闲 首先创建winfrom程序,建一
阅读全文
posted @
2017-07-20 22:56
西码
阅读(543)
推荐(0)
Async(异步)(一)
摘要:在谈到异步的概念时,先要了解几个概念了。 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同
阅读全文
posted @
2017-07-18 21:31
西码
阅读(471)
推荐(0)
IOSerialize(序列化)
摘要:在讲序列化和反序列化之前,先来阐述文件夹/文件 检查、新增、复制、移动、删除, Directory和DirectotyInfo这两个特性主要是对文件夹进行操作 首先检测文件夹是否存在 但是需要注意的是,通过new形式的判断,假如文件不存在也是不会报错的,不仅不报错,而且输出文件信息也是照样可以输出的
阅读全文
posted @
2017-07-09 11:45
西码
阅读(366)
推荐(0)
Abstract(抽象)
摘要:谈到抽象,就先谈谈面向对象语言的三大特性,也是人们口中常说的封装、继承、多态。 封装:什么是封装,按到我的理解,封装就是把某些类的相关属性和方法封装,对内实现数据影城,对外提供稳定接口。 继承:从字面上理解,就是声明一个父类,然后子类可以继承,并且子类拥有父类的一切属性和方法。 多态,值一个类实例相
阅读全文
posted @
2017-07-05 23:03
西码
阅读(214)
推荐(0)
Lambda(Linq)
摘要:在谈到lambda表达式之前,首先要说一下委托,在下一章会详细介绍委托,在这里就是简单说明一下。 委托的关键字段delegate,声明委托 可以这样说吧,委托就好比于在C语言中的函数指针。 在这里先声明一个无返回值的DoNothing方法 要使用委托必须方法签名相一致。 在框架1.0时代。 但是这样
阅读全文
posted @
2017-06-30 22:32
西码
阅读(348)
推荐(1)
Reflect(反射)
摘要:反射、反射,程序员的快乐。反射是无处不在的。 那么什么是反射:通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了反射,即可对每一个类型了如指掌 简单来说,一般来说,我们通过编译生成一个dll文件,dll文件由IL+metadata组成,而我
阅读全文
posted @
2017-06-28 23:27
西码
阅读(359)
推荐(0)
Generic(泛型)
摘要:什么是泛型:“通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用”。 简单来说泛型就是为了使一些代码能够重复利用。 泛型的经历: 在早期.net框架中不同的参数类型需要声明不同的方法; 1 public class CommonMethod 2 {
阅读全文
posted @
2017-06-24 22:10
西码
阅读(250)
推荐(0)