5月7

list<T>泛型

| |
11:46 ASP.NET  From: 本站原创

泛型(http://www.cnblogs.com/Kenny-Jiang/archive/2007/11/23/970033.html)主要是加入了一个类型参数的概念。这个类型参数可以运用在类,接口,方法,委托等地方。意义是:比如我有一个类,里面有一个成员的类型我不确定。它可能可以是任意类型,在没有泛型的情况下,我们会把这个成员设置成object类型的成员。问题是,在使用这个成员是我需要做类型转换,这样就有性能损失。而泛型可以在编译是根据类型参数的值确定这个成员的类型。比如下面代码
namesapce MyTest
{
  //<T>中的T可以写成任意的名称T不是保留字
  public class TestClass<T>
  {
    T m_Data;//这里T表示m_Data的类型,它将在编译时由其他代码决定
    public TestClass<T>(T data)
    {
      m_Data=data;
    }
  }

  public class TestProgram
  {
     /*下面代码中TestClass类的T参数分别被设置成int,string,object和float,所有用到参数T的地发都将被实际的类型所替代
     */
     public TestClass<int> intData;
     public TestClass<string> stringData;
     public TestClass<object> objectData;
     public TestClass<float> floatData;

     public TestProgram()
     {
       intData=new TestClass<int>(1);
       stringData=new TestClass<string>("Test");
       objectData=new TestClass<object>("someData");
       floatData=new TestClass<float>(1.3f);
     }
  }
}

以上就是泛型最简单的应用。关于list<>的用法和上面相同。不过泛型的类型参数在实际应用中一般是要用where关键字加约束的。具体可以参考msdn

最后编辑: tommyhu 编辑于2012/04/04 19:52
阅读(3732) | 评论(0) | 引用(0)
在此留下酱油瓶-:)
表情
emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我

您的大名(例如:小明) : 

密码(可不填) :  游客无需密码

网址 (可不填) : 

电邮 (可不填) :  [注册]