Casting string para o tipo genérico que é uma string
Estou escrevendo um método para fazer uma conversão de tipo inteligente - usando ToString () se o parâmetro type for uma string, caso contrário, lançando, mas retornando null se a conversão não funcionar. Basicamente, obtém tanta informação dev
pode sem lançar uma exceção.
Eu verifico issoT
é de fato umstring
antes de tentar o elenco, mas o compilador ainda não é um fã:
Cannot convert type 'string' to 'T'
E aqui está o meu método:
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;
}
}
Também deixe-me saber se isso é algum tipo de pecado imperdoável. Eu estou usando para lidar com algumas estruturas de dados que poderiam ter tipos mistos.