Questa è probabilmente una domanda per principianti, ma a sorpresa Google non ha fornito una risposta.Il valore del tipo "T" non può essere convertito in
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;
}
Provenendo da un C++ sfondo Ho aspettato questo lavoro. Tuttavia, non riesce a compilare con "Impossibile convertire in modo implicito il tipo 'T' in stringa" e "Impossibile convertire il tipo 'T' in stringa" per entrambi i compiti sopra indicati.
Sto facendo qualcosa di concettualmente sbagliato o ho solo la sintassi sbagliata. Per favore aiutami a sistemare questo fuori.
Grazie!
IMO, se si sta controllando i tipi nel codice farmaci generici, quindi generici probabilmente non sono la soluzione giusta per la vostra problema. –
L'espressione 'typeof (T) == typeof (stringa)' viene risolta in fase di runtime, non in fase di compilazione. Quindi la seguente riga nel blocco non è valida. –
(T) Converti.ChangeType (newT1, typeof (T)) – vsapiha