вы можете использовать Convert.ChangeType () со строками. См. Документацию MSDN: ChangeType
Из MSDN:
string s = "12/12/98";
DateTime dt = (DateTime)Convert.ChangeType(s, typeof(DateTime));
В приведенном выше случае преобразование из строки имеет смысл.
Используя этот метод, я полагаю, можно расширить его, чтобы справиться с нестроковыми значениями, например
private static bool _PerformConvert<T,U>( U value, ref T result )
{
object convert = Convert.ChangeType(value, typeof(U) );
// Continue ...
}
Возможно, имеет смысл иметь возможность преобразовывать любое значение, например, если у вас был интерфейс к сторонней dll, которая предоставляла числовое представление объекта (это произошло!), Вы могли бы использовать более общую версию кода для преобразования между сторонним представлением и другим представлением, которое имеет больше смысла для вашего кода.