首页 > 代码库 > 泛型接口和泛型方法

泛型接口和泛型方法


泛型接口

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication14{    public interface IGenericTnterface<T>//创建一个泛型接口    {        T CreateInstance();//接口中调用CreateInstance方法    }    //实现上面泛型接口的泛型类    //派生约束where T:TI(T要继承自TI)    //构造函数约束where T:new()(T可实例化)    public class Factory<T, TI> : IGenericTnterface<TI> where T : TI, new()    {        public TI CreateInstance()//创建一个公共方法CreateInstan        {             return new T();        }     }    class Program    {        static void Main(string[] args)        {            //实例化接口            IGenericTnterface<System.ComponentModel.IListSource> factory =                new Factory<System.Data.DataTable, System.ComponentModel.IListSource>();            Console.WriteLine(factory.CreateInstance().GetType().ToString());//输出指定泛型的类型            Console.ReadLine();        }    }}

泛型方法

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication15{    public class Finder//建立一个公共类Finder    {        public static int Find<T>(T[] items, T item)//创建泛型方法        {            for (int i = 0; i < items.Length; i++)//调用for循环            {                 if(items[i].Equals(item))//调用Equals方法比较两个数                {                    return i;//返回相等数在数组中的位置                }            }            return -1;//如果不存在指定的数,则返回-1        }    }    class Program    {        static void Main(string[] args)        {            int i=Finder .Find <int >(new int []{1,2,3,4,5,6,8,9},6);//调用泛型方法,并定义数组指定数字            Console.WriteLine("6在数组中的位置:"+i.ToString());//输出中数字在数组中的位置            Console.ReadLine();        }    }}

 

泛型接口和泛型方法