Questa è probabilmente una domanda per principianti, ma sorprendentemente Google non ha fornito una risposta.
Ho questo metodo piuttosto artificiale
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Proveniente da un background C ++, mi aspettavo che funzionasse. Tuttavia, non riesce a compilare con "Impossibile convertire implicitamente il tipo 'T' in stringa" e "Impossibile convertire il tipo 'T' in stringa" per entrambe le assegnazioni precedenti.
O sto facendo qualcosa di concettualmente sbagliato o ho solo la sintassi sbagliata. Per favore, aiutami a risolvere questo.
Grazie!
typeof(T) == typeof(string)
viene risolta in fase di esecuzione, non in fase di compilazione. Pertanto la seguente riga nel blocco non è valida.