码迷,mamicode.com
首页 > 其他好文 > 详细

泛型接口和泛型方法

时间:2014-11-21 09:05:29      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   sp   for   on   


泛型接口

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();
        }
    }
}

 

泛型接口和泛型方法

标签:style   blog   io   ar   color   os   sp   for   on   

原文地址:http://www.cnblogs.com/heisaijuzhen/p/4111988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!