我正在维护一个现有项目,发现以下代码行:

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类型(例如decimalbyteDateTime等)的方法。这些类型中的每一个都自己实现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/

10-11 06:46