反省允许定义的范围{类,结构体,接口和方法},相比较普通定义方式的好处是,不需要指定集体的数据类型,而是用一个类型参数来代替,在使用时指定
定义一个普通类和泛型类作比较
好处1:延迟数据类型的编写.
好处2:方法参数的动态性
class Program
{
static void Main(string[] args)
{
//使用普通类
People people = new People();
people.Id = 1;
Console.WriteLine(people.PeopleMethod());
//泛型类的使用
// <类型>:此处的类型需要写实际的,用来替代T
Person<string> person = new Person<string>();
//属性可以实现多样化
person.Id = "123";
Console.WriteLine(person.PersonMethod().GetType().ToString());
Person<int> person2 = new Person<int>();
person2.Id = 123;
Console.WriteLine(person2.PersonMethod().GetType().ToString());
}
}
//普通类
public class People
{
//在声明属性的时候需要把类型强调出来.
public int Id
{
get;set;
}
public int PeopleMethod()
{
return Id;
}
}
//泛型类
public class Person<T> {
//反省允许定义的范围{类,结构体,接口和方法},相比较普通定义方式的好处是,不需要指定集体的数据类型,而是用一个类型参数来代替,在使用时指定
//T替代了int,也可以替代其他类型,当使用该类的时候传入的类型是xxx,这里的id就是xxx类型的
//T:type,随便写的,"占位"
public T Id
{
get;set;
}
public T Age
{
get;set;
}
public T PersonMethod()
{
return Id;
}
//泛型类中也可以使用普通类的描述
public string Name
{
get;set;
}
}