上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 1.什么是Lambda表达式Lambda表达式是一个匿名方法,通常在LINQ中被用来创建委托简单来说。它是一个没有声明,没有访问修饰符,没有返回值。甚至没有名字的方法。2.为什么我们需要使用Lambda表达式?或者说为什么我们要写一个没有名字的函数?为了方便,这种快捷方式允许你在调用的地方直接编写代码,尤其是你想调用的代码只会在这个地方使用一次。并且方法体本身很短。节省了单独写方法中写声明等等的麻烦。。好处1.代码量减少。不必写方法的名称。返回值和访问修饰符2.当阅读代码的时候。直接就可以看到被调用函数的代码,不用去别的地方。Lambda表示应该短些。太复杂了。可读性就下降了如果编写Lambd 阅读全文
posted @ 2012-12-08 19:33 lazycoding 阅读(1033) 评论(1) 推荐(1) 编辑
摘要: 很早的时候,学习数据结构的时候。收集了一下演示的动画。帮助理解。但是不全。今天在看KMP算法的时候。看到了福州大学的一个精品课程。。81个演示动画呢。。想打包下载收藏。话说福州大学这才是好样的。踏踏实实搞学术。第一种方法就是手工了。。嘎嘎。你敢么。一个个下载。。。一个个改名。。第二种就是用整站下载的软件了。。但是我看了一下swf的命名。我就知道下载下来意义不大。因为名字不好理解。第三种就是自己写个程序吧。。整体思路,首先访问课程页面,解析得到每一章的标题和内容,然后创立章节文件夹,得到每个动画对应的html页面,然后对html页面解析,提取swf地址。然后下载就行了。比较疼的地方是那个页面用的 阅读全文
posted @ 2012-12-03 20:37 lazycoding 阅读(7331) 评论(21) 推荐(17) 编辑
摘要: 坊间流传的代码都有些问题,比如不能正常获取win7以上的版本信息,不能获取诸如专业版,旗舰版等的信息,不能正常获取操作系统位的信息。使用代码,写了一个简单的库来实现效果。用法大概如下:StringBuilder sb = new StringBuilder(String.Empty);sb.AppendLine("Operation System Information");sb.AppendLine("----------------------------");sb.AppendLine(String.Format("Name = {0}& 阅读全文
posted @ 2012-11-23 13:33 lazycoding 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 昨天读完了程杰的《大话设计模式》。。收获颇丰。深刻感到了设计模式的伟大。。对面向接口的编程也理解了不少。刚好看到codeproject上一篇将依赖倒置的。讲到了依赖注入的方式。仔细读了一下。翻译一遍加深认识。高耦合的代码随着项目复杂性的不断增加,最终会变成一碗碗的意大利面条啦。。二者通常是软件设计上的问题,如果一个类对另一个类的实现了解太多。当该类改变的时候会引起更多的改变。这违反了依赖倒置原则而松耦合的代码设计优良。随着时间流逝,代码复杂两增大,松耦合的好处会变得更加清晰,依赖注入模式是实现松耦合的一个好的办法,本文介绍在没有依赖注入容器的情况下实现依赖注入GoF说了,依赖倒置的原则:高层模 阅读全文
posted @ 2012-11-21 19:51 lazycoding 阅读(5008) 评论(5) 推荐(1) 编辑
摘要: Throw会抛出/传递异常,通过在catch块里使用throw语句.可以改变产生的异常,比如我们可以抛出一个新的异常,throw语句有各种各样的,并且很有必要.例子我们首先看一下三个方法,分别叫做A,B,C,他们使用不同的throw语句。方法A使用了无参的throw语句。这可以被看作是rethrow(继续抛出)—他会抛出已经出现的同样的异常继续,方法B throw一个命名的异常变量。这就不是一个完全的rethrow了—因为他虽然抛出了同样的异常。但是改变了StackTrace(堆栈轨迹),如果有必要的话,我们可以收集一些异常信息,而方法C则创建了一个新的异常。提示:你可以通过这种方法实现自定义 阅读全文
posted @ 2012-11-18 12:36 lazycoding 阅读(30741) 评论(0) 推荐(2) 编辑
摘要: 著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!介绍本文实现模板模式背景有时候我们需要做很多任务,而做这些任务的算法可能不同,这样可以设计成策略模式,这样。执行该任务的基本的一些代码就是一样的。但程序可可以动态的切换来执行任务的不同部分了。现在,真实的情况是有些算法,从实现层面山看,有可能有一些步骤是不一样的,这种情况下。我们可以使用继承来完成。当有个算法,而这个算法的一部分却多样的时候。使用模板模式就很好。GoF定义模板模式为:"Define the skeleton of an algorithm in 阅读全文
posted @ 2012-10-25 22:12 lazycoding 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!介绍本文介绍外观模式,并给出简单的实现示例背景写软件的时候,有时候需要处理一系列的对象来完成一个确定的任务.比如,我们给一个万能遥控器写代码,我们需要关掉所有的设备,那么,我们有这样几种选择.第一个就是手动选择每一个设备,然后一个接一个的关闭,这好傻.那我们为什么不再遥控器上放一个按钮,我们按一下就关掉了.按钮的命令会与设备控制器通信然后关掉他们.如果我们又想在晚上12的时候自动关闭设备,那么我们就会有一个基于事件的计时器,与设备通信,然后关闭设备,问题是在两种情况下我们 阅读全文
posted @ 2012-10-23 18:44 lazycoding 阅读(1122) 评论(0) 推荐(1) 编辑
摘要: 著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!背景本文讨论装饰器模式,这个模式是因为很多情况下需要动态的给对象添加功能.比如我们创建了一个Stream类.后来需要对这个数据流类动态的添加一个加密功能.有人可能说把加密方法写到流类里面啊.然后使用一个bool变量来控制开关就行了.但是这样.这个加密方法只能写一种..如果用派生类来实现.那么..对于不同的加密方法.,都要创建一个子类,举个例子.比如有时候是一些函数的组合.我们最终的派生类的数目基本上就和排列组合的数目一样了.我们使用装饰器模式来解决这个问题.GoF描述为& 阅读全文
posted @ 2012-10-22 11:37 lazycoding 阅读(1452) 评论(6) 推荐(1) 编辑
摘要: 著作权声明:本文由http://leaver.me 翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!本文用C#实现原型模式,也会讨论深浅拷贝,已经如何在.net中高效实现ICloneable 接口介绍有时候我们需要从上下文得到一个对象的拷贝,然后通过一些独立的操作来处理他。原型模式在这种情况下很适用GoF 定义原型模式为用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Specify the kind of objects to create using a prototypical instance, and create new objects by 阅读全文
posted @ 2012-10-20 20:04 lazycoding 阅读(957) 评论(0) 推荐(0) 编辑
摘要: 著作权声明:本文由http://leaver.me翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!本文讨论题目的内容。然后讨论IEnumerable接口如何使得foreach语句可以使用。之后会展示如果实现自定义的集合类,该集合类实现了IEnumerable接口。Yield关键字和遍历集合后面也讨论。背景一使用集合。就发现遍历集合就跟着来了。遍历集合最好的方式是实现迭代器模式-Understanding and Implementing the Iterator Pattern in C# and C++(这篇文章我过几天翻译一下) ,C#提供foreach来以一种优 阅读全文
posted @ 2012-10-18 15:49 lazycoding 阅读(3195) 评论(6) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页