Si j'ai une signature de méthode comme
public string myMethod<T>( ... )
Comment puis-je, à l'intérieur de la méthode, obtenir le nom du type qui a été donné comme argument de type? J'aimerais faire quelque chose de similaire à typeof(T).FullName
, mais cela fonctionne réellement ...
typeof(T).FullName
devrait fonctionner. Que se passe-t-il à la place?Réponses:
Votre code devrait fonctionner.
typeof(T).FullName
est parfaitement valable. Il s'agit d'un programme entièrement compilé et fonctionnel:Exécution des impressions ci-dessus (comme prévu):
la source
<int?>
" Si oui, cela fonctionne, mais vous obtenezSystem.Nullable<int>
(dans la syntaxe du nom complet), ce à quoi vous vous attendez ...nameof(T)
et quetypeof(T).Name
je ferais la même chose. Il s'avèrenameof(T)
que les retoursT
.typeof(T).Name
ettypeof(T).FullName
travaillent pour moi. Je reçois le type passé en argument.la source
En supposant que vous ayez une instance d'un T disponible, ce n'est pas différent de tout autre type.
la source