Student : IComparable<Student> 以及逆变和协变

C#泛型比较接口详解
本文详细解析了C#中泛型接口IComparable&lt;T&gt;的使用方法,特别是针对Student类实现该接口的具体实例。通过示例代码展示了如何在Student类中重写CompareTo方法,并解释了为何在调用此方法时只能传入Student类型参数。
IComparable<Student>是Student的父类,所以IComparable<Student>可以接收Student。
但是在使用CompareTo方法的时候,必须传入Student,不允许传入父类IComparable<Student>。
public interface IComparable<in T>
public class Student : IComparable<Student>
    {
        public int Id { get; set; }

        public int CompareTo(Student other)
        {
            return Id - other.Id;
        }
    }

    class Test
    {
        public Test()
        {
            IComparable<Student> student1 = new Student() {Id = 1};

            IComparable<Student> student2 = new Student() {Id = 2};
            int result = student1.CompareTo(student2);
        }
    }

 

转载于:https://www.cnblogs.com/chucklu/p/10343915.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值