Если у меня есть сигнатура метода как
public string myMethod<T>( ... )
Как может я, в методе, получать название типа, который был дан как аргумент типа? Я хотел бы сделать что-то подобное typeof(T).FullName
, но это на самом деле работает...
Ваш код должен работать. typeof (T) .FullName
вполне допустим. Это полностью компилируемая, работающая программа:
using System;
class Program
{
public static string MyMethod<T>()
{
return typeof(T).FullName;
}
static void Main(string[] args)
{
Console.WriteLine(MyMethod<int>());
Console.ReadKey();
}
}
Выполнение вышеприведенных отпечатков (как и ожидалось):
System.Int32
Предполагая, что у вас есть доступный экземпляр T, он ничем не отличается от любого другого тип.
var t = new T();
var name = t.GetType().FullName;
typeof (T) .Name
и typeof (T) .FullName
у меня работают. Я получаю тип, переданный в качестве аргумента.