Esta es probablemente una pregunta novata, pero Google sorprendentemente no proporcionó una respuesta.
Tengo este método bastante artificial
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Viniendo de un fondo de C ++, esperaba que esto funcionara. Sin embargo, no se puede compilar con "No se puede convertir implícitamente el tipo 'T' a cadena" y "No se puede convertir el tipo 'T' a cadena" para las dos asignaciones anteriores.
Estoy haciendo algo conceptualmente incorrecto o simplemente tengo la sintaxis incorrecta. Por favor, ayúdame a resolver esto.
¡Gracias!
typeof(T) == typeof(string)
se resuelve en tiempo de ejecución, no en tiempo de compilación. Por lo tanto, la siguiente línea en el bloque no es válida.