这是关于此问题的跟进,我试图在我的答案中解释但失败了。
DateTime实现了IConvertible接口。您可以证明这一点,因为
IConvertible dt = new DateTime();
编译没有问题。
您可以编写以下代码,且无编译错误。
IConvertible dt = new DateTime();
dt.ToDateTime(val);
然而,如果您编写下一个代码片段,它不会编译。
DateTime dt = new DateTime();
dt.ToDateTime(val);
'System.DateTime'不包含'ToDateTime'的定义。
如果DateTime实现了接口,为什么不能在DateTime上调用方法,除非它被转换为IConvertible?