跟小D每日学口语
摘要: C# 3.0下有限状态机的一种优雅的实现实现状态机有多种模式,其中最灵活而强大的方式是通过迁移表来实现,该方式的缺点之一是需要编写大量小块代码去支持迁移表。而在C#3.0中,可以以一种非常优雅的方式实现。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace StateMachine{class Program{static void Main(string[] args){var door = new Door(State.Open);while (true){st 阅读全文
posted @ 2012-09-01 23:14 Danny Chen 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 摘 要说到序列化,大家都非常熟悉XML序列化,还有二进制序列化,经过序列化的数据流更方便传输和存储。其实我们可以对序列化进行更多的控制,比如对序列化(和反序列化)前后的数据操作、定义自己的可序列化类型等。这一章我们来讨论一下有关于序列化和反序列化。第一节 序列化1、 序列化序列化包括正向序列化和反向序列化,一般我们将正向序列化说成是序列化。序列化(Serialization)是将一个类对象转化成一个字节流。反序列化(Deserialization)是将一个字节流转化成一个对应的类对象的过程。在WCF通信中,当向服务端发送请求的时候,WCF是先把本地的内存对象序列化成XML或Binary通过信道 阅读全文
posted @ 2012-09-01 17:10 Danny Chen 阅读(341) 评论(0) 推荐(0) 编辑
摘要: MSBuild基本概念(续)在上一篇简单的介绍了下MSBuild中的四个基本块,每块介绍比较单薄,在这里对在大多数的项目模版生成的*.*proj文件中比较常见一些用法和概念做些补充。主要有一下几方面:MSBuild特殊字符:MSBuild保留的一些字符,以及XML中的特殊字符处理。MSBuild条件: Condition特性,作用类似于C#的if。MSBuild属性: 使用环境变量、保留属性、全局属性。MSBuild项: 元数据、项转换。MSBuild任务: ITask接口、UsingTask[自定义任务]、ContinueOnError。MSBuild目标: 初始目标、默认目标、目标依赖项。 阅读全文
posted @ 2012-09-01 16:53 Danny Chen 阅读(2433) 评论(0) 推荐(0) 编辑
摘要: MSBuild是什么?MSBuild全称(Microsoft Build Engine),是用来生成.NET程序的平台。您可能不知道它,但是如果您在使用VS做开发,那么一定时时刻刻在使用它。因为是它在背后为你管理生成你 的项目文件。当新建一个项目时,注意下项目文件夹中的*.*proj文件就是为MSBuild提供的,这是个文本文件,基于XML格式,里面包含有项目所 包含的文件,生成配置,输出配置等信息。当把一个文件或者图片等添加到项目中,就会在这里添加一个描述,反之则删除一个描述信息;在项目属性页所做的配置 也会在这里存储。为何去了解MSBuild想去了解这个源于以前学WPF时的疑惑(当时就想从 阅读全文
posted @ 2012-09-01 16:52 Danny Chen 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 一、委托Delegate一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如[c-sharp] view plaincopypublicvoidHelloWorld(){Console.WriteLine("HelloWorld!");}publicvoidHelloWorld(stringname){Console.WriteLine("Hello,{0}!",name);}但是有些时候,我们希望把一个方法本身当做参数传递给另一个方法,比如myObject.callMethod 阅读全文
posted @ 2012-09-01 14:59 Danny Chen 阅读(189) 评论(0) 推荐(0) 编辑