gpt4 book ai didi

c# - 为什么 DateTime.ToDateTime( ) 不能编译?

转载 作者:太空狗 更新时间:2023-10-30 00:14:46 27 4
gpt4 key购买 nike

这是 this question 的跟进我试图在我的回答中解释但未能解释。

DateTime 实现 IConvertible .你可以证明这一点,因为

IConvertible dt = new DateTime();

编译没有问题。

可以写出如下代码,没有编译错误

IConvertible dt = new DateTime();
dt.ToDateTime(val);

但是,如果您编写下一个代码片段,它不会编译

DateTime dt = new DateTime();
dt.ToDateTime(val);

'System.DateTime' does not contain a definition for 'ToDateTime'

如果 DateTime 实现接口(interface),为什么不能调用 DateTime 上的方法,除非它被转换为 IConvertible?

最佳答案

因为 DateTime 显式实现了 IConvertible 接口(interface) - 此方法列在 Explicit Interface Implementations 中MSDN 上的部分。这是它的实现方式:

DateTime IConvertible.ToDateTime(IFormatProvider provider)
{
return this;
}

您应该将 DateTime 转换为 IConvertible:

DateTime dt = new DateTime();
var result = ((IConvertible)dt).ToDateTime(val);

参见 Explicit Interface Implementation (C# Programming Guide)

关于c# - 为什么 DateTime.ToDateTime( ) 不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306977/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com