C#_泛型
What

类型占位符
可以有多个
用<>来包裹【类、接口、方法、泛型类】
一般为大写字母
影响签名的、可用通过传入的类型进行判断调用的泛型签名
可以用default(T)进行对应类型赋值
调用时要指定占的类型,之后不可以更改

Why

可以实现类型参数化,可以避免成员膨胀
实现代码复用,不同类型的相同逻辑
一定程度可以避免装箱拆箱(ArrayList<T>)

How

class Student<T,M>{Public T value;}
inteface Draw<T>{T value{get;set;}}
public void <T>(T value){}//作为参数、public void <T>(){T t=default(T);}、public T Test<T>(string value){}