Приведение строки к универсальному типу, который является строкой
Я пишу метод для интеллектуального преобразования типов - с использованием ToString (), если параметр типа является строкой, в противном случае приведение, но возвращающее нуль, если приведение не работает. В основном получает как можно больше информации изv
это может без исключения.
Я проверяю этоT
действительноstring
прежде чем я попробую приведение, но компилятор все еще не фанат:
Cannot convert type 'string' to 'T'
И вот мой метод:
public T? Convert<T>(object v)
{
if (typeof(T) == typeof(string)) {
return (T)v.ToString(); // Cannot convert type 'string' to 'T'
} else try {
return (T)v;
} catch (InvalidCastException) {
return null;
}
}
Также дайте мне знать, если это какой-то непростительный грех. Я использую его для работы с некоторыми структурами данных, которые могут иметь смешанные типы.