我正在维护一个现有项目,发现以下代码行:
Datetime someDate = ....;
var anotherDateTime = Convert.ToDateTime(someDate);
起初,我希望通过隐式调用
someDate
方法将ToString
转换为字符串,但是我错了。当我在方法上按F12时,在System.Convert
类中看到了该方法的定义,如下所示:// Summary: Returns the specified System.DateTime object; no actual conversion is performed.
// Parameters:
// value: A date and time value.
// Returns:
// value is returned unchanged.
public static DateTime ToDateTime(DateTime value);
首先为什么.NET框架首先具有这样的方法,如文档所述,该方法没有作用?
第二个在重构代码时,可以安全地删除对此方法的调用而不影响其行为吗?
最佳答案
这是因为Convert
类旨在与实现 IConvertible
接口(interface)的类型一起使用。
该接口(interface)包含将实现类型转换为CLR类型(例如decimal
,byte
,DateTime
等)的方法。这些类型中的每一个都自己实现IConvertible
。
因此,Convert.ToDateTime(DateTime d)
并不是唯一不执行任何操作的方法。它也适用于所有实现IConvertible
的CLR类型,例如Convert.ToChar(char c)
。这仅仅是因为所有这些类型都实现了IConvertible
。
您可以在Convert
类的源代码的comments中了解有关此内容的更多信息。
关于c# - : public static DateTime ToDateTime(DateTime value) in the . NET Framework的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52851652/