C#==> 泛型类的几点特性

1,需要为泛型类定义约束

 

为泛型类定义约束的作用,实际上就是指定泛型类型应该符合某种规范

使用where关键字定义

如下

public class MyClass<TMyTemp>
        where TMyTemp : IMyInface

{

     ... ...

}

包含where关键字的约束,

代表泛型TMyTemp必须要实现对接口IMyInface

 

这里的TMyTemp就是泛型 以T开头可以算是一种命名约定。

where关键还有以下集中

where Txxx :  struct   //约束 类型 Txxx必须是值类型

where Txxx :  class    //约束 类型 Txxx必须是引用类型

where Txxx :  new()   //约束 类型 Txxx必须有一个默认的构造函数

 

 

2,泛型继承

有如下几种继承方式

 

A ,

    public class Base<T> { }

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

 

B,

    public class Base<T> { }

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

 

C,

    public class Base<T> { }

    public class Child: Base<int> { }

 

3, 泛型类中的静态成员

泛型类的静态成员比较特殊,编译器会为每一个指定了类型的泛型类定义一个共享,

比如

类Base有一个静态成员 i

    public class Base<T>
    {
        public static int i;
    } 

 

    Base<string> b1 = new Base<string>();
    Base<float> b2 = new Base<float>();

Base<string>,Base<float>分别都将有一个自己静态成员

posted @ 2014-10-31 18:28  Net-Spider  阅读(223)  评论(0)    收藏  举报