在下面的代码中,我的目标是 .NET 2.0 Framework。
我可以将 Programmer(派生)对象传递给期望 Person(基类)的 Compare 方法
但是由于程序员是人(简单的 OO 概念),我声称在 .NET 4.0 中,IComparable 接口声明中的“in”关键字是“矫枉过正”:)
在我给微软写一封关于他们删除 in 关键字的电子邮件之前,请尝试以其他方式说服我:)
class Program
{
static void Main(string[] args)
{
var person = new Person();
var test = person.CompareTo(new Programmer());
}
}
internal class Person : IComparable<Person>
{
public int Id { get; set; }
public string Name { get; set; }
public int CompareTo(Person other)
{
return this.Id - other.Id;
}
}
class Programmer : Person
{
public string ProgrammingLanguage { get; set; }
}