泛型接口

using System;
using System.Collections.Generic;
using System.Text;

namespace 泛型
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化接口
            IGenericl<System.ComponentModel.IListSource> factory =
                new Factory<System.Data.DataTable, System.ComponentModel.IListSource>();
            //输出指定泛型的类型
            Console.WriteLine(factory.CreateInstance().GetType().ToString());
            Console.ReadLine();
        }
    }

    public interface IGenericl<T>
    {
        T CreateInstance();//接口中调用CteateInstance方法
    }

    //实现上面泛型接口的泛型类
    //派生约束where T : TI(T要继承自TI)
    //构造函数约束where T : new() (T 可以实例化)
    public class Factory<T, TI> : IGenericl<TI> where T : TI,new()
    {
        public TI CreateInstance()//创建一个公共方法CreateInstance
        {
            return new T();
        }
    }

}

 

posted @ 2013-09-17 23:21  cppwen  阅读(376)  评论(0编辑  收藏  举报