一、泛型是什么?
泛型(Generic),是将不确定的类型预先定义下来的一种C#高级语法,我们在使用一个类,接口或者方法前,不知道用户将来传什么类型,或者我们写的类,接口或方法相同的代码可以服务不同的类型,就可以定义为泛型。这会大大简化我们的代码结构,同时让后期维护变得容易。
泛型很适用于集合,我们常见的泛型集合有:List<T>,Dictionary<K,V>等等(T,K,V就代表不确定的类型,它是一种类型占位符),无一不是利用的泛型这一特性,若没有泛型,我们会多出很多重载方法,以解决类型不同,但是执行逻辑相同的情况
1、泛型长什么样?
namespace 泛型
{
class Program
{
static void Main(string[] args)
{
Test<string>();
Console.ReadKey();
}
static void Test<T>()
{
Console.WriteLine(typeof(T).FullName);
}
}
}
二、泛型类
1、泛型类是什么?
泛型类是指这个类的某些字段的类型是不确定的,只有在构造的时候才能确定下的类,泛型类一般在数据结构中用的比较多
2、如何定义一个泛型类?
class People<T1,T2>
{
// people 有俩个属性的类型不确定,可以定义泛类
public T1 Sex { get; set; } //性别可以用1、0,也可以使用字符串男 、女 ,也可以使用true/false
public T2 Age { get; set; }
}
三、泛型方法
1、什么是泛型方法
泛型方法是指通过泛型来约束方法中的参数类型,如果没有泛型,每次方法中的参数类型都是固定的,不能随意更改,在使用泛型后,方法中的数据类型则有指定的泛型来约束,即可以根据提供的泛型来传递不同类型的参数
通俗来讲 泛型方法一个方法的参数可以是任意类型的
2、系统使用泛型方法有
List<int> list = new List<int>();
Dictionary<string, string> d1 = new Dictionary<string, string>();
3、如何定义一个泛型方法
//1 在方法名后面加上<T>
//2 参数是泛型的时候 在参数前面添加T,多个泛型参数使用,隔开,
public static void Add1<T>(T a)
{
Console.WriteLine("昨天爆爆炸队友:" + a);
}