泛型(Generic)接口

泛型接口例子:一个学生有一个独一无二的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类型,则类就不需要设置为泛型类了。

上一篇:探索ASP.NET Core 3.0系列一:新的项目文件、Program.cs和generic host


下一篇:泛型(Generic)类的使用原因和使用方式