C'est probablement une question novice, mais Google n'a étonnamment pas fourni de réponse.
J'ai cette méthode plutôt artificielle
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Venant d'un fond C ++, je m'attendais à ce que cela fonctionne. Cependant, il ne parvient pas à compiler avec "Impossible de convertir implicitement le type 'T' en chaîne" et "Impossible de convertir le type 'T' en chaîne" pour les deux affectations ci-dessus.
Soit je fais quelque chose de mal conceptuel, soit j'ai simplement la mauvaise syntaxe. S'il vous plaît, aidez-moi à régler celui-ci.
Je vous remercie!
typeof(T) == typeof(string)
est résolue au moment de l'exécution, pas au moment de la compilation. Ainsi, la ligne suivante du bloc n'est pas valide.