摘要:前段时间遇到了这样一个问题,下面的这段代码: using System;class test{ private static int inNumber = 0; public static void Main() { int[] tt = GetTheDatas(); foreach(int i in GetTheDatas()) ...
阅读全文
摘要:foreach隐式调用无参的GetEnumerator 方法来获取一个enumerator,但是一个集合只能有一个无参的GetEnumerator 方法,通常有这样的需求,根据参数的不同实现不同的枚举顺序或者枚举方式.在这些情形下,可以利用iterator来实现返回enumerable interfaces的属性和方法.比如Stack实现了IEnumerable类型的TopToBottom 和Bo...
阅读全文
摘要:1.why IteratorsC#中的foreach语句用于迭代一个可枚举集合的元素.为了实现可枚举,这个集合元素必须实现无参的GetEnumerator 方法,该方法返回一个enumerator,通常情况下enumerator实现起来是比较困难的,用Iterators让这个任务变得非常简单.2.How Iterators一个iterator 是yields一个有序值序列的语句块.一个iterat...
阅读全文
摘要:3.范型的实例化跟不是范型的类型类似,编译后的范型也表现为IL指令和元数据.当然范型也会编码已存在和使用的类型参数.在构造范型类型,比如stack的实例在程序中被构造时,.NET的CLR JIT编译器将会把IL指令和元数据转化成本地代码,在这个过程中将会用实际类型替换类型参数.以后对该构造范型类型的引用将会使用同一份本地代码.从范型类型创建一个特定的构造范型类型的过程叫做范型类型的实例化(Gene...
阅读全文
摘要:虽然机子上没有C#2.0和C#3.0的编译环境,但是还是忍不住要学一下这些新东东,谁让Anders是俺偶像那.范型允许类,结构,接口,委托和方法根据他们存储和操作的数据类型来实现参数化.C#的范型对于Eiffel和Ada范型的使用者和C++模板的使用者来说是非常熟悉的,但是他们不用承受后者(C++的模板)的复杂.1.为什么要用范型?如果没有范型,多用途的数据结构可以用object存储任意类型的数据...
阅读全文
摘要:起先是想看一下Anders的一个访谈,关于LINQ的.听完访谈后,看到有Dan Fernandez(Visual C#的Product Manager)的一篇关于LINQ文章的链接,跑了进去,紧接着瞄了一样C#3.0的Spec.估计在MS内部已经差不多整出来就等发布了.Anders那些关于LINQ的演示实在太cool了.LINQ的MS官方定义如下:LINQ stands for Language ...
阅读全文
摘要:直接或间接继承自System.Attribute的类是Attribute,按照约定,属性的名字应该带一个Attribute的后缀,当然不带也不会引起编译时的错误,只不过需要注意的是以下内容 using System;[AttributeUsage(AttributeTargets.All)]public class XAttribute: Attribute{}[X] ...
阅读全文
摘要:下午遇到一个需求,写一个SQL Function根据一些子结点的OID找到指定层级的父结点.OID,子结点的OID如**,**,**所示.又一次领略了用SQL写函数和存储过程的别扭,也许是自己用惯了VS.NET随便点点就可以写程序的方式.唉,SQL里居然没有split,郁闷地找了半天,最后用SubString和CharIndex自己模仿了Split的功能.写出的函数结果如下: /**//*****...
阅读全文
摘要:covariant可以理解为变异.也就是一种类型转换成另一种类型.Anders在>的数组一章中提到了数组的变异.如果一个引用类型A可以隐式或者显式地转化为B,则A[R]也可以转化成B[R],R可以任意指定,但A,B必须相同,这种关系称为数组变异.数组变异不能推广到值类型,比如不能从int[]转化成object[],也不能从byte[]转化成int[].今天在Bill Wanger的blog上发现了...
阅读全文
摘要:刚刚逛Bill Wanger的blog看到了一篇帖子,虽然感觉没什么新意,不过既然他老人家郑重其事地提出来了,估计有他的用意,自己写了个程序验证了一下,贴在下面,由于他老人家用的是C#2.0(用到了范型),俺机子没有装,只能把它翻译成C#1.1的版本了. class ClassPrint { private readonly ArrayList words; pu...
阅读全文
摘要:今天早上嫂子生小孩了老哥做老爸了老妈做奶奶了老爹做爷爷了,俺也升级做长辈了有时候总觉得自己还是个小孩,小侄女出世了,有人叫叔叔了,俺是大人了.2005年11月20日,俺长了一辈,哈哈.
阅读全文
摘要:想说些什么,突然发现很无语,感谢CCTV5没有直播这场比赛,没让我在孤独的午夜独自品尝失落的痛楚.找了很多理由安慰自己.上个赛季,皇马不是客场也是0:3,主场4:2报仇了吗?五星巴西不也在世界杯预选赛被阿根廷3:1羞辱,联合会杯4:1还以颜色了吗?这次皇马的伤病确实太严重了,大部分主力球员都是刚刚伤愈或者带伤上场的,并且很多球员都参加了世界杯预选赛或者热身赛.但是我知道这些都只是借口.皇马赢下的比...
阅读全文
摘要:有幸被Gigabyte选中,继续这个游戏.规则如下:被点名的同学要在自己blog回答以下所有的问题,并在最后写下多出一个问题,然后把问题丢给其它5人回答,并且到这些人的版面留言"你被点名了" 。注明是从哪一个blogger那里被点名的,游戏规则,还有"中奖"的5位朋友。比如我现在要回答37道题,我回答完以后再加一个,被我点名的朋友就要回答38个题目,如此继续。由于这个游戏没有很好的规则来限制死锁,...
阅读全文