DateTime实现了IConvertible.你可以证明这一点,因为
IConvertible dt = new DateTime();
Run Code Online (Sandbox Code Playgroud)
编译没有问题.
您可以编写以下代码,并且没有编译错误
IConvertible dt = new DateTime();
dt.ToDateTime(val);
Run Code Online (Sandbox Code Playgroud)
但是,如果您编写下一个代码片段,则无法编译
DateTime dt = new DateTime();
dt.ToDateTime(val);
Run Code Online (Sandbox Code Playgroud)
'System.DateTime'不包含'ToDateTime'的定义
如果DateTime实现了接口,为什么不能在DateTime上调用该方法,除非它被转换为IConvertible?
Ser*_*kiy 11
因为显式DateTime实现IConvertible接口 - 此方法在MSDN上的显式接口实现部分中列出.以下是它的实现方式:
DateTime IConvertible.ToDateTime(IFormatProvider provider)
{
return this;
}
Run Code Online (Sandbox Code Playgroud)
你应该施展DateTime到IConvertible:
DateTime dt = new DateTime();
var result = ((IConvertible)dt).ToDateTime(val);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |