代码改变世界

随笔分类 - c#

瑞士军刀 VS 单一职责原则

2009-08-28 19:07 by 鹤冲天, 3763 阅读, 收藏, 编辑
摘要: “单一职责原则”是面向对象软件开发的基本原则之一,面向对象的思想又是从现实世界中总结出来。可最近发现面向对象的单一职责原则与现实好似有些冲突... 阅读全文

c# 扩展方法奇思妙用变态篇四:string 的翻身革命

2009-08-26 20:27 by 鹤冲天, 8404 阅读, 收藏, 编辑
摘要: string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫... 而现在string要“翻身闹革命”了,它几乎无所不能,可以为所欲为,令其它类心惊胆颤... 阅读全文

c# 扩展方法奇思妙用基础篇三:byte 常用扩展

2009-08-22 21:11 by 鹤冲天, 9067 阅读, 收藏, 编辑
摘要: byte 常用的八种扩展 阅读全文

c#扩展方法奇思妙用变态篇三:switch/case组扩展

2009-08-18 20:32 by 鹤冲天, 13065 阅读, 收藏, 编辑
摘要: 变态篇二中给出了对if/else、swith/case及while 的扩展,其中举了一个Swith扩展的应用... 今天突然有了新想法,对Switch扩展进行了改进。所谓“语不惊人死不休”,且看这次的改进如何... 阅读全文

c# 扩展方法奇思妙用高级篇三:Enumerable.Cast<T> 应用

2009-08-17 21:10 by 鹤冲天, 18484 阅读, 收藏, 编辑
摘要: Enumerable.Cast用于将IEnumerable转换为泛型版本IEnumerable。转换后可尽情享用Enumerable的其它方法... 但MSDN中仅给出一个转换ArrayList的例子,很多人看了感觉用处不多,其实不然... 阅读全文

c# 扩展方法奇思妙用性能篇一:扩展方法性能初测

2009-08-15 20:15 by 鹤冲天, 10284 阅读, 收藏, 编辑
摘要: 最近写了几篇《c#扩展方法奇思妙用》的文章,一直只是讨论如何扩展、如何使用的问题,几乎没有涉及效率方面。而大家的回复好多都在问效率如何、性能怎样,也引起了我对效率的关注,今天将初步测试的结果发出来,大家一起探讨一下。 这次测试的结果令我倍感意外,确实没想到扩展方法的效率如此之高... 阅读全文

c# 扩展方法奇思妙用变态篇二:封装 if/else、swith/case 及 while

2009-08-13 18:13 by 鹤冲天, 16096 阅读, 收藏, 编辑
摘要: 本文探讨如何使用扩展方法封装 if/else、swith/case及while,通过使用这些扩展,写出的代码将使用很少的大括号{ }... 阅读全文

c# 扩展方法奇思妙用高级篇二:Aggregate 扩展及其改进

2009-08-12 20:07 by 鹤冲天, 21107 阅读, 收藏, 编辑
摘要: Enumerable.Aggregate 扩展方法在System.Linq命名空间中... 本文介绍使用Aggregate进行求和、byte数组异或、字符串拼装/逆序输出。并对Aggregate进行改进,实现间隔求和,进一步改进查重极限算法。 阅读全文

c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”

2009-08-10 09:06 by 鹤冲天, 6781 阅读, 收藏, 编辑
摘要: public static IEnumerable GetSequence(this Func func, int count)... 相信大家见的扩展大多针对类(object, string)、接口(IEnumerable)进行扩展,针对Func(委托)估计对大多数人来说都是第一次。 public static Func Fibonacci = n = Fibonacci(n - 1) + Fibonacci(n - 2);... 与数学通项式对比一下,何其相似!这就是我们的“递推递归委托”! 阅读全文

使用“初中知识”实现查找重复最优算法 + 最终极限算法

2009-08-08 16:39 by 鹤冲天, 2832 阅读, 收藏, 编辑
摘要: 初中知识解决以下问题: 1-n放在含有n+1个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?(n可能为奇数) 文章最后还给出了一个极限算法! 阅读全文

c# 扩展方法奇思妙用高级篇一:改进 Scottgu 的 "In" 扩展

2009-08-08 10:49 by 鹤冲天, 5073 阅读, 收藏, 编辑
摘要: 很多介绍扩展方法的也大都使用"In"作为例子,但很少有人再深入想一步。个人感觉这个In扩展的不够彻底... 使用 params 和 泛型改进了 ScottGu 的 In 扩展,使用调用代码更加简洁,同时也能减少编程中的误输入。 阅读全文

c# 扩展方法奇思妙用

2009-08-07 17:45 by 鹤冲天, 57731 阅读, 收藏, 编辑
摘要: c#扩展方法出来已久,介绍的文章也很多,但都是笼统的。 本人最近一直在思考扩展方法的应用,也悟出了一些。 将这最近一段时间对扩展的思考,写成一个系列文章。 每个文章只介绍一个应用方面,篇幅不会太长。 打算将文章写成三个部分:基础篇、高级篇、变态篇。 阅读全文

c# 扩展方法奇思妙用基础篇一:中文处理

2009-08-07 17:20 by 鹤冲天, 20085 阅读, 收藏, 编辑
摘要: 我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。 本文采用扩展方法解决全半角切换的问题... 阅读全文

c# 链式编程

2009-08-07 14:49 by 鹤冲天, 9736 阅读, 收藏, 编辑
摘要: c#链式编程,使用链式编程精炼代码。采用泛型扩展方法来对已由代码链式编程。 阅读全文

超精简C#程序代码改进-利用扩展方法简化代码增强可读性

2009-08-06 22:17 by 鹤冲天, 3347 阅读, 收藏, 编辑
摘要: 今天在园子里面发现一篇文章超精简C#程序代码,看了之后很是震撼,花了好长时间基本看明白了。随后又有了一些新的想法。 最近一直在思考扩展方法的应用,与这篇文章中的想法一接合,可将代码进一步精简,并可增强可读性。 代码仅用了三个分号... 阅读全文