Существует ли какая-либо универсальная функция Parse (), которая преобразует строку в любой тип с помощью синтаксического анализа?

Я хочу преобразовать строку в универсальный тип, например int или date или long в зависимости от универсального типа возвращаемого значения.

Обычно это функция типа Parse (String) , которая возвращает элемент типа T .

Например, если было передано целое число, функция должна выполнять внутреннее выполнение int.parse .

79
задан shA.t 26 August 2018 в 07:44
поделиться

1 ответ

System.Convert.ChangeType

В соответствии с вашим примером вы могли бы сделать:

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>();
114
ответ дан 24 November 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: