Comment puis-je obtenir le nom de type d’un argument de type générique?

Si j’ai une signature de méthode comme

public ssortingng myMethod( ... ) 

Comment puis-je, dans la méthode, obtenir le nom du type qui a été donné comme argument de type? Je voudrais faire quelque chose de similaire à typeof(T).FullName , mais ça marche vraiment …

Votre code devrait fonctionner. typeof(T).FullName est parfaitement valide. C’est un programme complet et fonctionnel:

 using System; class Program { public static ssortingng MyMethod() { return typeof(T).FullName; } static void Main(ssortingng[] args) { Console.WriteLine(MyMethod()); Console.ReadKey(); } } 

Exécuter les impressions ci-dessus (comme prévu):

 System.Int32 

typeof (T) .Name et typeof (T) .FullName fonctionnent pour moi … J’obtiens le type passé en argument.

En supposant que vous ayez une instance de T disponible, ce n’est pas différent de tout autre type.

 var t = new T(); var name = t.GetType().FullName;