12 2010 档案
快速类型判定
摘要: 最近在写一段代码的时候,为了兼容各种未知的类型,以及完成一个根据类型自动分派的任务到对应的处理器时,使用了这样的一个契约: 用一个object数组来转递值,每个处理器则声明一个可以处理的类型组合。 然后在写如何分派时,发生了一段小插曲。分派原则 首先,明确一下分派的原则,如果处理器声明能处理的类型是:string,int 那么只有当对象数组的长度为2,并且类型分别为string和int时,才会分派到这个处理器上去执行,不过,要注意的一点是,string是引用类型,因此值可以为null,最终,声明为string,int的处理器可以接受下列参数:"aaa",123n
阅读全文
当foreach遇到yield和上下文切换时
摘要: 说到c#里面foreach应该是尽人皆知的了,不过,各位是不是了解foreach是怎么工作的哪? 大多数情况下,即使不了解foreach是如何工作的,照样可以把代码写的很正确。不过,前两天我在写一段代码时,却不得不把foreach大卸八块,原因就是遇到了yield和上下文切换,详细情况听我慢慢道来。 情景介绍 ...
阅读全文