rex的博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
    C#2.0 generic 的资料已经出来很长时间了,相信大家对它也有了很多的了解。
    语法的简洁,以及where的限定等等,使它看起来比c++的模板有了一些更优雅的地方。然而,由于c#编译器本身的限制,它大概还是无法胜任类似于Loki之类的泛型编程方法。最大的限制在于,类不能从它的模板类继承,类似于以下代码
public class Foo<T> : T
{

    这在C#2.0是无法编译的。而这样的技巧在c++ generic programming中是policy的基本用法。
    另外一项在c++ generic progrmming中重要的技术是partial specialization。这一点在c#2.0里一样没有得到支持,最多只能从函数重载中获得类似的部分功能。
    不过总体来说,c#2.0的泛型比java1.5的会略微舒服一点,尤其在runtime reflection的时候,可以获得代码的完整的泛型信息,这应该是一大优势。
posted on 2005-07-01 14:13  rex  阅读(1127)  评论(0编辑  收藏  举报