泛型:指的是泛指的类型,可以将类型在不同的类或者接口中进行传递,类似于传参
泛型在类中:
把一个类型做成泛型,可以节省大量的代码
泛型在类中的作用域仅限于这个类,不允许被继承
public class Person<T>
{
public T t;
public static void show(T tt)
{
Console.WriteLine(tt);
}
}
泛型在方法中,会根据实参自动匹配T属于什么类型
public class Text
{
public static void Show<T>(T t)
{
}
public static void TTT()
{
Show(10);//使用泛型方法
}
public static void Show2<T>()
{
}
public static void TT()
{
Show2<int>();
}
}
泛型在接口中的应用:
public interface IAddService<T, M>
{
void Add(T t, M m);
}
public class Demo : IAddService<int, string>
{
public void Add(int a, string b)
{
}
}
泛型限定:
泛型的约束条件
关键字:where(表示对一个泛型的约束条件)
class Animal { }
class Dog : Animal { }
class HaShiQi : Dog { }
class Demo<M,T>
where M :Animal //必须是Animal或者Animal的子类
where T : Dog,new() //new()表示Demo这个类必须提供无参的构造方法
{
}