[c#] 제네릭 형식 인수의 형식 이름을 어떻게 얻습니까?

다음과 같은 메서드 서명이있는 경우

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


답변

typeof(T).Name그리고 typeof(T).FullName나를 위해 노력하고 있습니다. 인수로 전달 된 유형을 얻습니다.


답변

사용 가능한 T의 인스턴스가 있다고 가정하면 다른 유형과 다르지 않습니다.

var t = new T();

var name = t.GetType().FullName;


답변