1:声明一个Employee类
public class Employee
{
private string name;
private int id;
public Employee(string s, int i)
{
name = s;
id = i;
}
public string Name
{
get { return name; }
set { name = value; }
}
public int ID
{
get { return id; }
set { id = value; }
}
}
2:一个操作实体类的方法类,通过对泛型约束访问特定的数据类型
在泛型类型定义中,where 子句用于指定对下列类型的约束:这些类型可用作泛型声明中定义的类型参数的实参。
此方法中类型参数T继承自Employee类,即该类型T必须把Employee作为该类型的基类,也可以继承接口并实现这个接口
public delegate void Action<T>(T obj);
public class Test
{
public void Process<T>(T s2, Action<T> process) where T : Employee
{
s2.Name = "weiwei";
process(s2);
}
}
3:泛型回调,使用泛型可以最大限度的重用代码,保护类型安全以及提升性能。
class Program
{
static void Main(string[] args)
{
Employee e = new Employee("hua", 0);
Test t = new Test();
t.Process(e, (c) =>
{
Console.WriteLine(c.Name);
Console.Read();
});
}
}