摘要: MSDN模版Stream myStream =null;OpenFileDialog openFileDialog1 =newOpenFileDialog();openFileDialog1.InitialDirectory="c:\\";openFileDialog1.Filter="txt files (*.txt)|*.txt|All files (*.*)|*.*";openFileDialog1.FilterIndex=2;openFileDialog1.RestoreDirectory=true;if(openFileDialog1.Show 阅读全文
posted @ 2013-06-27 13:50 Ethan.Sun 阅读(404) 评论(0) 推荐(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) { string s = Console.ReadLine(... 阅读全文
posted @ 2013-06-26 10:28 Ethan.Sun 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 让类遵守契约1.接口要求其实现类接口中定义的所有方法和属性。2.写一个接口和写一个类类似,只是不用写具体方法实现。只需要定义方法的返回值和参数,然后不用写用大括号括起来的语句,只写一个分号就可以了3.接口不能存储数据,所以不可以在里面定义字段。但是可以定义属性,因为get 和set 访问器也是方法,而接口就是要强迫类去实现有特定名字、特定返回值、接受特定参数的方法。所以如果你想要让接口要求其实现类含有某个字段,定义一个属性4.接口只是解决方案的一部分。你还是需要创建实现这个接口的类,因为接口中并没任何实现代码。接口并不能用来防止创建额外类或者防止冗余代码。它是用来使得一个类可以做不止一种工作而 阅读全文
posted @ 2013-06-24 14:18 Ethan.Sun 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 用封装来控制你的类的字段和方法的访问当你把你的一个类的字段和方法都设置为public 的时候,其他的类都可以访问它们,这个类知道的和会做的事儿对其他类都是一目了然...而且你也看见了这会怎么样的使得你的程序以你未预期的方式运作。封装让你可以控制要共享什么要把什么设置为私有的私有字段和方法只可以从类内部访问一个对象要接触到另一个对象内存储的数据只有一个方法:使用返回数据的公有方法和字段没有确切的理由声明公有的时候,就别声明公有。把类内的东西都声明为公有会使得事情很糟糕--但是也别把所有东西都声明为私有。首先把哪些是公有,哪些是私有想清楚,之后就可以节省很多时间。1.私有字段应该用camelCas 阅读全文
posted @ 2013-06-24 12:43 Ethan.Sun 阅读(213) 评论(0) 推荐(0) 编辑
摘要: Open-Closed Principle原则讲的是:一个软件实体应当对扩展开放,对修改关闭。优点: 通过扩展已有软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件有一定的适应性和灵活性。 已有软件模块,特别是最重要的抽象层模块不能再修改,这使变化中的软件系统有一定的稳定性和延续性。用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许更改的是系统的实现层。里氏代换原则(LSP)Liskov Substitution Principle(里氏代换原则):子类型(subtype)必须能够替换它们的基类型。 阅读全文
posted @ 2013-06-21 16:55 Ethan.Sun 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1.就一个类而言,应该仅有一个引起它变化的原因。2.在SRP中定义职责为:“变化的原因”。 如果你想到多个动机去改变这个类,那这个类就有多个职责 阅读全文
posted @ 2013-06-21 14:29 Ethan.Sun 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 业务代码class Operate { public string _firstKey; public string _secondKey; public string _extendKey; public string FirstKey { get { return _firstKey;} set{_firstKey=value;} } public string SecondKey { get { return _secondKe... 阅读全文
posted @ 2013-06-20 10:51 Ethan.Sun 阅读(331) 评论(0) 推荐(0) 编辑
摘要: class Operate { public string _firstKey; public string _secondKey; public string _extendKey; public string FirstKey { get { return _firstKey;} set{_firstKey=value;} } public string SecondKey { get { return _secondKey; ... 阅读全文
posted @ 2013-06-19 14:57 Ethan.Sun 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 重构的简单规则就是去除重复代码,加强代码规范,命名(方法名,变量名,类名等等),书写格式,提取函数,使得每个函数短小精悍,最终的目的不需要通过注释别人也能读懂代码 阅读全文
posted @ 2013-06-19 10:44 Ethan.Sun 阅读(164) 评论(0) 推荐(0) 编辑
摘要: ConfigurationManager.AppSettings["AdminName"]; 连接App.config的字符 阅读全文
posted @ 2013-06-18 10:03 Ethan.Sun 阅读(146) 评论(0) 推荐(0) 编辑