首页 > 代码库 > 泛型接口和泛型方法
泛型接口和泛型方法
泛型接口
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(); } }}
泛型接口和泛型方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。