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