C# Get Generic Type Name

前端 未结 9 1717
旧时难觅i
旧时难觅i 2020-11-30 06:09

I need some way to get the Name of a Type, when type.IsGenericType = true.

    Type t = typeof(List);
    MessageBox.         


        
9条回答
  •  [愿得一人]
    2020-11-30 07:06

    public static class TypeNameExtensions
    {
        public static string GetFriendlyName(this Type type)
        {
            var friendlyName = type.Name;
            if (!type.IsGenericType) return friendlyName;
    
            var iBacktick = friendlyName.IndexOf('`');
            if (iBacktick > 0) friendlyName = friendlyName.Remove(iBacktick);
    
            var genericParameters = type.GetGenericArguments().Select(x => x.GetFriendlyName());
            friendlyName += "<" + string.Join(", ", genericParameters) + ">";
    
            return friendlyName;
        }
    }
    

提交回复
热议问题