Ответ 1
Конвенция, предсказуемость и потому что IConvertable определяет метод ToDateTime.
Полагаю, что под обложками System.Convert просто пробегает все комбинации классов IConvertable.
//
// 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);
Почему System.Convert
имеет ToDateTime
, который принимает DateTime?
В документации по методу указано, что значение остается неизменным.
Конвенция, предсказуемость и потому что IConvertable определяет метод ToDateTime.
Полагаю, что под обложками System.Convert просто пробегает все комбинации классов IConvertable.
Фактический код действительно:
public static DateTime ToDateTime(DateTime value)
{
return value;
}
Это подтверждает, что значение не будет изменено. Существует много методов преобразования. Я думаю, что он существует только потому, что он должен принимать все примитивные объекты в подписях.
т.е. при использовании отражения, если бы это было неожиданно, если преобразование из DateTime
в DateTime
не поддерживается.