摘要:
linq已经不是什么新鲜事物了,用linq写了几个月的代码以后,外加上最近经常看Haskell之类的函数式编程语言,发现自己的代码风格有了很大的变化。原来的代码带有很明显的过程式,而现在的代码却非常接近函数式。甚至与50%的方法的第一个单词是return。 这也许是linq为我们带来的另一种潜移默化的变革。 阅读全文
摘要:
几乎所有的书或文章都说,引用类型的对象是在托管堆里面的,而值类型的对象可以在栈里也可以在堆里(例如:装箱与拆箱),但是,今天写一个推翻引用类型的对象是在托管堆里面的情况: 首先,在这里使用了大量的Emit和反射,因为不喜欢直接写IL汇编,所以看起来有点累,但是IL的知识是必须的,否则很难看明白这些代码是在干什么。 其次,要理解为什么会这样,需要了解一些程序底层的知识。 ... 阅读全文
摘要:
1、非零开始的2维数组复制到从零开始的2维数组 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> // 源数组[1001..1003,1001..1003] Array array1 = Arra... 阅读全文
摘要:
前一阶段vs2008终于正式推出了,忙着学习3.5的新功能,今天就写一下学习成果吧。(当然包括c# 3.0和vb9的新特性) 个人感觉,新语法的最终要的两个语法是:扩展方法和Lambda表达式,当然不是说其它的新特性不重要,只是个人感觉比较简单,没有什么需要花大力气去学习的。 扩展方法应该说是一个非常甜的语法糖,为了给一些类增加功能,必须要新建一个Utility,然后给出... 阅读全文
摘要:
不知道大家有没有发现CLR在处理浮点数的时候,有点怪异,举个例子来说: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> static void Main(string[] args) { ... 阅读全文
摘要:
一个错误基类: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->[Serializable] public abstract class ErrorBase : Exception { private string psID = st... 阅读全文
摘要:
这个主题网上有不少内容,这里简单的就跳过了,直接说一些比较稀奇古怪的处理方式(一下运行结果全部是基于.net 2.0的) 先说一下测试的公共代码,FuncX就是后面不同的Func: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -... 阅读全文
摘要:
好久没写文章了,主要是前面一段时间比较忙,一直没空学习和思考,好不容易找了个休息日,写一下Blog 前几篇已经写到过特性,并且用它实现了一些东西。这次来谈一下一种比较怪异的特性的运用——方法注入。 其实,说他怪异,稍微过了点,因为就连M$给大家的类库就用这种运用,举个例子TransactionAttribute,就是一个对事务相关方法的一个行为指导的注入。为什么这么说,Tr... 阅读全文
摘要:
本文主要讨论一下SingleTon的几种不同的实现的性能差异,当然这个差异本身是非常小的,即使使用了性能最差的方式,也比反射的性能要好上很多倍。 首先,来看一下几种常用的线程安全的SingleTon方案。 1、静态字段直接new自身实例,最简单的一种,其实也是我最喜欢的一种(类本身也是BeforeFieldInit的)。 1.1、静态字段,通过类型构造new自身实例... 阅读全文
摘要:
使用Emit对大接口的装饰进行简化 阅读全文