C#泛型委托和泛型接口的应用

using System;
namespace Application
{
    //泛型接口和泛型委托的简单应用

    //1.泛型接口
    interface I_test<T>//这里的T意思就是泛型接口,继承的时候要指定接口的类型
    {
         T run(T ABC);
        
        
    }
    class pro: I_test<string>
    {
      public  string run(string str)
        {
            return "我是string泛型接口的实现"+str;
        }
    }
    class pro1 : I_test<int>
    {
        public int run(int a)
        {
            return 5 + a;
        }
    }
    //2.泛型委托
    public delegate T D1<T,U>(T ABC);//第一个T是返回类型,<T>指定这个委托是泛型,最后一个T是参数也是泛型。
    //下面2种也是泛型委托
    public delegate string D2<T>(T ABC);//第一个T是返回类型,<T>指定这个委托是泛型,最后一个T是参数也是泛型。
    public delegate T D3<T>(string ABC);//第一个T是返回类型,<T>指定这个委托是泛型,最后一个T是参数也是泛型。
    class pro3 
    {
        public int runInt(int a)
        {
            return 5 + a;
        }
    }
    class StaticTester  
    {
        static void Main(string[] args)
        {
            pro p = new pro();
            string s = p.run("1");

            pro1 p1 = new pro1();
            int qq = p1.run(3);
            Console.WriteLine("pro值: {0}", s);
            Console.WriteLine("pro1值: {0}", qq);

            pro3 pp = new pro3();
            D1<int,string> d1 = pp.runInt;//给中介委托赋值,这里的string用不到
            int ii= d1(6);
            Console.WriteLine("PP值: {0}", ii);

            Console.ReadKey();
        }

    }
}

 

posted @ 2023-02-02 18:31  灰色淡季  阅读(58)  评论(0)    收藏  举报