摘要: 所谓工厂,肯定是和生产有关。工厂模式主要包括工厂方法模式和抽象工厂模式,有些人把简单工厂也作为一种模式,在本文我分别讨论简单工厂模式,工厂方法模式,抽象工厂模式。这些模式中同样也和生产有关。接下来,我们来看看各种工厂的特点。简单工厂模式 上面说了只是有些人把简单工厂看做是设计模式,其实是一种编程习惯,无论是否是设计模式,本文将先看看其用法,然后简单给出其类图,最后说出其特点。本节将面对多种比萨,先看看当顾客需要一个比萨时的过程:1.根据类型,制作一个比萨形状。2.然后进行烘烤3.切4.打包如果不熟悉的话,完全可以把其想想成面包的做法。当顾客根据自己的需求要一个比萨时,用代码模拟这个过程如... 阅读全文
posted @ 2013-10-18 10:26 蚂蚁拉车 阅读(235) 评论(0) 推荐(0) 编辑
摘要: ref和out往外传参数时,ref和out传递的都是变量的地址。ref侧重于修改,out侧重于输出值。ref在传递之前必须要有值,因为在方法中有可能会用到这个参数的值,out在传递之前可以没有值,因为在方法中必须为这个变量赋值 阅读全文
posted @ 2013-10-18 09:26 蚂蚁拉车 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 全文摘自http://www.cnblogs.com/g1mist/p/3227290.html,很好的一个实例。 反射提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。 1.先建立实体类 用户实体类:123456789public class User{public int id { get; set; }public string UserName { get; set; }public string Password { get; set; }public int A... 阅读全文
posted @ 2013-10-17 16:33 蚂蚁拉车 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 想简化一些代码,就研究了一下反射,资料不少,感觉挺难,搞得似是而非。写了个小东西回顾一下反射的用法。 建一个User类classUser { privatestringuserid="0001"; publicstringUserid { get{returnuserid;} set{userid=value;} } privatestringuserName="aaa"; publicstringUserName{ get{returnuserName;} set{userName=value;} } privatestringaddress=&quo 阅读全文
posted @ 2013-10-17 16:05 蚂蚁拉车 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 任何一个使用.NET的人描述线程与进程的区别?什么是Windows服务,它的生命周期与标准的EXE程序有什么不同Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?EXE和DLL之间的区别是什么?什么是强类型,什么是弱类型?哪种更好些?为什么?PID是什么?在做系统的故障排除时如何使用它?单个TCP/IP端口上能够侦听多少个进程?什么是GAC?它解决了什么问题?中级.NET开发人员阐述面向接口、面向对象、面向方面编程的区别什么是Interface?它与Class有什么区别?什么是反射?使用ASMX的XML Web服务与使用SOAP的.N 阅读全文
posted @ 2013-10-17 15:54 蚂蚁拉车 阅读(1193) 评论(0) 推荐(1) 编辑
摘要: 在之前的一个课题中,曾经需要用到2W行*3W列的float类型矩阵(大约2.4G),由于无法创建大于2G的对象,当时采用了一些取巧的办法回避了,并没有拿出精力来研究一下这个问题。今天和公司的张哥(大牛级人物)重新谈到了这个话题,在他的一些指引下感觉收获颇深,发博记录一下。 首先,大家应该知道.net4.5以前,C#是无法创建内存大于2G的对象的。而且经测试,这仅仅是对64位平台的限制,在32位平台上,大约对象在1.47G左右的时候就会报异常了。至于其为什么这样设计,大家可以参考博文:http://blogs.msdn.com/b/joshwil/archive/2005/08/10/45... 阅读全文
posted @ 2013-10-17 13:14 蚂蚁拉车 阅读(4936) 评论(8) 推荐(4) 编辑
摘要: 假如有以下XML:- - - D:\888\- - \韩寒_要自由.htm 民主 - \谈谈韩寒三论.htm 民主\中国 - \韩寒_我的2011.htm 民主\中国 - \韩寒_要自由.htm 民主\中国 -... 阅读全文
posted @ 2013-10-15 14:36 蚂蚁拉车 阅读(188) 评论(0) 推荐(0) 编辑
摘要: abstract :表示方法是抽象方法,在子类中必须重写。抽象方法所在的类必须是抽象类,即用abstract modifiers;virtual:表示此方法是virtual方法,除了在子类中可以重写外(在子类中也可直接使用),和普通方法完全一样;override:表示重写父类的virtual方法;new: 显式隐藏从基类继承的成员;区别:virtual:标记方法为虚方法1.可在派生类中以override覆盖此方法2.不覆盖也可由对象调用3.无此标记的方法(也无其他标记),重写时需用new隐藏原方法abstract 与virtual : 方法重写时都使用 override 关键字如果子类重写了父 阅读全文
posted @ 2013-10-15 09:54 蚂蚁拉车 阅读(287) 评论(0) 推荐(1) 编辑
摘要: Lambda 的表达式的编写格式如下:x=> x * 1.5当中 “ => ” 是 Lambda 表达式的操作符,在左边用作定义一个参数列表,右边可以操作这些参数。例一, 先把 int x 设置 1000,通过 Action 把表达式定义为 x=x+500 ,最后通过 Invoke 激发委托。1 static void Main(string[] args)2 {3 int x = 1000;4 Action action = () => x = x + 500;5 action.Invok... 阅读全文
posted @ 2013-10-14 16:56 蚂蚁拉车 阅读(1500) 评论(0) 推荐(0) 编辑
摘要: 1 泛型委托 Predicate 早在Framework 2.0 的时候,微软就为 List 类添加了 Find、FindAll 、ForEach 等方法用作数据的查找。 public T Find ( Predicate match) public List FindAll(Predicate match) 在这些方法中存在一个Predicate 表达式,它是一个返回bool的泛型委托,能接受一个任意类型的对象作为参数。 public delegate bool Predicate(T obj) 在下面例子中,Predicate 委托绑定了参数为Person类的方法Match作... 阅读全文
posted @ 2013-10-14 16:52 蚂蚁拉车 阅读(938) 评论(0) 推荐(0) 编辑