代码改变世界

c# 扩展方法奇思妙用滥用篇一:改进 2011 年最佳代码

2011-08-08 18:39 by 鹤冲天, 10495 阅读, 17 推荐, 收藏, 编辑
摘要:使用 OrNot 扩展方法性改进 2011 年最佳代码:if (whatEver(you.Believe)(it).OrNot()) I.Believe(it); 阅读全文

保护眼睛:给 PDF 设置图片背景

2011-08-04 22:05 by 鹤冲天, 16471 阅读, 20 推荐, 收藏, 编辑
摘要:从事 IT 行业,免不了经常阅读 PDF 文档。 PDF 文档纯白色背景相当刺眼,长时间阅读会导致眼睛干涩疼痛。一些 PDF 阅读软件可以修改背景,但往往只能使用纯色(单一颜色)。 PDF 文档使用淡雅的图片作背景,可减缓视觉疲劳,保护我们的眼睛。 阅读全文

这种写法用过没:string.Format("{0,-10}", 8)

2011-08-03 18:46 by 鹤冲天, 8864 阅读, 6 推荐, 收藏, 编辑
摘要:做 .net 开发也若干年了,如此写法确是我第一次见(更别提用了):string.Format("4G 内存便宜了{0,12:C2},我打算买{1,4}条", 145, 2); 阅读全文

快速创建 IEqualityComparer<T> 和 IComparer<T> 的实例

2011-08-02 21:14 by 鹤冲天, 11467 阅读, 32 推荐, 收藏, 编辑
摘要:.net 中 IEqualityComparer 和 IComparer 经常在 Linq 和 一些泛型集合、泛型字典类中用作参数。不过因其复杂性,包含 IEqualityComparer 或 IComparer 类型参数的函数一般使用频度不高。 尽管如此,有些情况下确非用不可,不得不创建一些新的类来实现 IEqualityComparer 或 IComparer 接口。不但增加了代码量,还对程序结构产生影响,新加入的类命名、放置、共用都是问题。 因此,我们期望能简单快速直接的创建 IEqualityComparer 和 IComparer 的实例。 阅读全文

何止 Linq 的 Distinct 不给力

2011-08-02 18:45 by 鹤冲天, 8981 阅读, 18 推荐, 收藏, 编辑
摘要:昨日有文《Linq的Distinct太不给力了》,本文更深一步讨论。 .net 中经常把 IEqualityComparer 用作某些重载的参数。 虽然这些重载在日常使用中并不频繁, 不过一旦用到,大多要创建新类实现 IEqualityComparer,繁琐不给力。 本文创建 Equality 泛型类,配合一个 lambda 表达式可快速创建 IEqualityComparer 的实例。 阅读全文

c# 扩展方法奇思妙用基础篇八:Distinct 扩展

2011-08-01 20:57 by 鹤冲天, 22108 阅读, 28 推荐, 收藏, 编辑
摘要:刚看了篇文章 《Linq的Distinct太不给力了》,文中解决办法,略显复杂。使用本文的扩展方法可写成如下优雅的方式:var p1 = products.Distinct(p => p.ID) 阅读全文

使用 ADO.NET 开发 数据库无关 的 应用程序

2011-07-20 22:06 by 鹤冲天, 3974 阅读, 7 推荐, 收藏, 编辑
摘要:开发数据库无关的应用程序有很多种方式,本文介绍最基础的一种... 阅读全文

.NET 求和的效率

2011-07-14 13:32 by 鹤冲天, 4500 阅读, 3 推荐, 收藏, 编辑
摘要:对 .NET 中各种求和的方式进行效率比较... 对一般开发影响不太,对效率要求不高的朋友可无视本文... 阅读全文

.NET 4:并行求和不爽

2011-07-13 20:02 by 鹤冲天, 5924 阅读, 6 推荐, 收藏, 编辑
摘要:如题,使用 .NET 4 中的并行求和,效率不理想。文中给出一简单的并行求和方法... 阅读全文

当 dynamic 遇上 internal

2011-06-29 07:53 by 鹤冲天, 3498 阅读, 10 推荐, 收藏, 编辑
摘要:dynamic 免去了反射调用的繁琐和不雅,带来了极大便利。但面对其他程序集中的 internal 类型时 dynamic 表现又如何呢... 阅读全文

借助 委托 精简代码

2011-06-23 20:47 by 鹤冲天, 6315 阅读, 7 推荐, 收藏, 编辑
摘要:相信大多朋友和我一样,每天写代码就会用到 String.Format 这个方法。太经常用,感觉敲起键盘了不是太利索,于是把它精简成一个字母 F,以后代码可以这样写了:var s = F("今天是 {0}", DateTime.Now)。 阅读全文

ASP.NET MVC:Razor 引入命名空间

2011-05-22 20:09 by 鹤冲天, 23283 阅读, 7 推荐, 收藏, 编辑
摘要:MVC 中使用 Razor 视图引擎,引入命名空间有两种方式,页面中和配置文件中... 阅读全文

借助 Clay 编写 不可思议 的 c# 代码

2011-02-22 21:42 by 鹤冲天, 18887 阅读, 15 推荐, 收藏, 编辑
摘要:如题,借助于 Clay 项目,我们可以编写出不可思议的 c# 代码,各种方式的对象初始化和属性赋值,简单动态创建集合,动态接口实现...本文将会令你大为惊叹:原来c#也可以这样写!! 阅读全文

c# 扩展方法奇思妙用基础篇七:IsBetween 通用扩展

2011-02-18 21:09 by 鹤冲天, 6857 阅读, 9 推荐, 收藏, 编辑
摘要:写个扩展容易,但写一个通用的扩展可不简单,试看本文借如何优雅的完成通用的 IsBetween 扩展... 阅读全文

c# 扩展方法奇思妙用基础篇 六:WhereIf 扩展

2011-02-17 19:24 by 鹤冲天, 16435 阅读, 23 推荐, 收藏, 编辑
摘要:创建并使用 WhereIf 扩展方法简化代码... 阅读全文

c# 扩展方法奇思妙用基础篇五:Dictionary<TKey, TValue> 扩展

2011-01-28 18:41 by 鹤冲天, 29294 阅读, 16 推荐, 收藏, 编辑
摘要:为 Dictionary<TKey, TValue> 类创建几个扩展方法,让使用更加简洁高效... 阅读全文

c# 扩展方法奇思妙用基础篇四:Random 扩展

2011-01-27 20:45 by 鹤冲天, 11059 阅读, 12 推荐, 收藏, 编辑
摘要:在 .Net 中,我们一般使用 Random 类来生成随机数,它仅提供了几个基本方法供我们使用。如果想生成一些特殊的随机数,如枚举、日期等,则要再进行几步处理。本文将会扩展 Random 类,让随机更方便... 阅读全文

ASP.NET MVC:创建 ModelBinder 自动 Trim 所有字符串

2010-12-29 21:32 by 鹤冲天, 5482 阅读, 6 推荐, 收藏, 编辑
摘要:用户输入的字符串前后的空格会对程序造成很大的危害,作为严谨的开发人员,我们应该主动进行处理。本文中创建了一个 StringTrimModelBinder 可以轻松完成网站内所有字符串(不论是参数还是属性)的 Trim 工作... 阅读全文

ASP.NET MVC:自定义 Route 生成小写 Url

2010-11-10 22:12 by 鹤冲天, 10808 阅读, 13 推荐, 收藏, 编辑
摘要:本文讨论 MVC 中 Url 的大小写问题,逐步构造 LowerCaseUrlRoute 类以在 MVC 中自动生成小写的 url。最后给出了 LowerCaseUrlRouteMapHelper 类用来简化 Global.asax 文件中路由的配置。提供参考代码下载... 阅读全文

ASP.NET MVC:窗体身份验证及角色权限管理示例

2010-10-27 20:50 by 鹤冲天, 31104 阅读, 26 推荐, 收藏, 编辑
摘要:如题,ASP.NET MVC 窗体身份验证及基于角色权限管理示例,提供了两种方式... 阅读全文