泛型接口例子:一个学生有一个独一无二的ID,但是每个学生的姓名不一定是唯一的。
class Program
{
static void Main(string[] args)
{
Student<ulong> stu = new Student<ulong>();
stu.ID = 2014031026;
stu.Name = "Maomao";
}
}
interface IUnique<Tid>
{
Tid ID { get; set; }
}
class Student<Tid>:IUnique<Tid>
{
public Tid ID { get; set; }
public string Name { get; set; }
}
如果这个类实现的是泛型接口,那么这个类也是泛型的,实现接口的时候必须把接口里全部的成员实现。
另一种情况,类实现的是特化之后的泛型接口,这样的类就不是泛型类了。
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
stu.ID = 2014031026;
stu.Name = "Maomao";
}
}
interface IUnique<Tid>
{
Tid ID { get; set; }
}
class Student : IUnique<ulong>
{
public ulong ID { get; set; }
public string Name { get; set; }
}
直接在类继承接口的时候就注入ulong类型,则类就不需要设置为泛型类了。