【发布时间】:2014-07-12 19:27:11
【问题描述】:
我有点想知道编译器如何处理以下代码,即使 Object 没有实现 IComparable 接口。 一般来说,如果我们将一个接口类型转换为一个没有实现该接口的对象,编译器会抛出一个错误。
object i = 6;
object r = ((IComparable)i).CompareTo(5);
Console.WriteLine(r);
对象没有实现IComparable接口,但是这里怎么做转换,不是说Object没有实现IComparable吗?
编辑:Nullable 类型的行为是什么(Nullable 类型不实现 IComparable)?
int? j = 5;
int result = ((IComparable) j).CompareTo(6);
不应该是这样的:
int result = ((IComparable) (int) j).CompareTo(6);
//int implements IComparable
【问题讨论】: