How do I get the type name of a generic type argument?

后端 未结 3 799
半阙折子戏
半阙折子戏 2020-12-10 00:03

If I have a method signature like

public string myMethod( ... )

How can I, inside the method, get the name of the type that was g

相关标签:
3条回答
  • 2020-12-10 00:45

    Your code should work. typeof(T).FullName is perfectly valid. This is a fully compiling, functioning program:

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

    Running the above prints (as expected):

    System.Int32
    
    0 讨论(0)
  • 2020-12-10 00:58

    Assuming you have some instance of a T available, it's no different than any other type.

    var t = new T();
    
    var name = t.GetType().FullName;
    
    0 讨论(0)
  • 2020-12-10 01:02

    typeof(T).Name and typeof(T).FullName are working for me. I get the type passed as an argument.

    0 讨论(0)
提交回复
热议问题