Как я получаю имя типа общего аргумента типа?

Если у меня есть сигнатура метода как

public string myMethod<T>( ... )

Как может я, в методе, получать название типа, который был дан как аргумент типа? Я хотел бы сделать что-то подобное typeof(T).FullName, но это на самом деле работает...

82
задан Tomas Aschan 5 January 2017 в 14:41
поделиться

3 ответа

Ваш код должен работать. 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
130
ответ дан 24 November 2019 в 09:16
поделиться

Предполагая, что у вас есть доступный экземпляр T, он ничем не отличается от любого другого тип.

var t = new T();

var name = t.GetType().FullName;
1
ответ дан 24 November 2019 в 09:16
поделиться

typeof (T) .Name и typeof (T) .FullName у меня работают. Я получаю тип, переданный в качестве аргумента.

5
ответ дан 24 November 2019 в 09:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: