C#_泛型

2017-06-14  本文已影响16人  雨生_

泛型是一个在很多语言中都有相似结构的东西,主要的优点有:

1.性能

这里写一个例子先:

public T GetDocument()
        {
            T doc = default(T);
            //do something
            return doc;
        } 

2.安全性

var list = new List<int>();
            list.Add(88);//right
            list.Add("string");//wrong

3.命名约定

public class List<T>{    }
        
public class LinkedList<T>{    }

 public delegate void EventHandler<in TEventArgs>(object sender,TEventArgs e);
 public delegate TOutput Converter<in TInput, out TOutput>(TInput from);

下面再介绍一些泛型类相关的东西

1.泛型类约束

看下面的代码:

public class DocumentManager<TDocument> where TDocument : IDocument
      {
           
      }
约束 说明
where T: struct 对于结构体的约束,T必须是值类型
where T: class T必须是引用类型
where T: IFoo T必须实现接口IFoo
where T: Foo T 的基类必须是Foo
where T: new() T 必须有默认的构造函数
where T1: T2 T1必须派生自T2

2.泛型类的继承

      public class Base<T>{}
      public  class Child<T> : Base<T> { }
      public  class Child<T> : Base<string> { }

3.静态成员

public class StaticDemo<T>
      {
          public static int x;
      }

public void Main()
      {
          StaticDemo<int>.x = 4;
          StaticDemo<string>.x = 5;
          StaticDemo<double>.x = 6;
      }

上一篇下一篇

猜你喜欢

热点阅读