泛型:指的是泛指的类型,可以将类型在不同的类或者接口中进行传递,类似于传参
泛型在类中:
把一个类型做成泛型,可以节省大量的代码
泛型在类中的作用域仅限于这个类,不允许被继承
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这个类必须提供无参的构造方法 { }