Я хочу преобразовать строку в универсальный тип, например int
или date
или long
в зависимости от универсального типа возвращаемого значения.
Обычно это функция типа Parse
, которая возвращает элемент типа T
.
Например, если было передано целое число, функция должна выполнять внутреннее выполнение int.parse
.
В соответствии с вашим примером вы могли бы сделать:
int i = (int)Convert.ChangeType("123", typeof(int));
DateTime dt = (DateTime)Convert.ChangeType("2009/12/12", typeof(DateTime));
Чтобы удовлетворить ваше требование «универсального возвращаемого типа», вы можете написать свой собственный метод расширения:
public static T ChangeType<T>(this object obj)
{
return (T)Convert.ChangeType(obj, typeof(T));
}
Это позволит вам сделать :
int i = "123".ChangeType<int>();