From c3d73e1091fa47b188076d087255d4f651f24c36 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Thu, 27 Sep 2018 15:07:21 -0400 Subject: [PATCH] fix: Improved Type GetSyntaxName method --- ICD.Common.Utils/Extensions/TypeExtensions.cs | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/ICD.Common.Utils/Extensions/TypeExtensions.cs b/ICD.Common.Utils/Extensions/TypeExtensions.cs index b80857a..73f9336 100644 --- a/ICD.Common.Utils/Extensions/TypeExtensions.cs +++ b/ICD.Common.Utils/Extensions/TypeExtensions.cs @@ -317,45 +317,48 @@ namespace ICD.Common.Utils.Extensions if (extends == null) throw new ArgumentNullException("extends"); + // Nullable Type nullableType = Nullable.GetUnderlyingType(extends); if (nullableType != null) return nullableType.GetSyntaxName() + "?"; - if (!(extends.IsGenericType && extends.Name.Contains('`'))) + // Generic + if (extends.IsGenericType) { - switch (extends.Name) + StringBuilder sb = new StringBuilder(extends.Name.Substring(0, extends.Name.IndexOf('`'))); + sb.Append('<'); + + bool first = true; + foreach (Type t in extends.GetGenericArguments()) { - case "String": - return "string"; - case "Int32": - return "int"; - case "Decimal": - return "decimal"; - case "Object": - return "object"; - case "Void": - return "void"; - - default: - return string.IsNullOrEmpty(extends.FullName) ? extends.Name : extends.FullName; + if (!first) + sb.Append(','); + sb.Append(t.GetSyntaxName()); + first = false; } + + sb.Append('>'); + + return sb.ToString(); } - StringBuilder sb = new StringBuilder(extends.Name.Substring(0, extends.Name.IndexOf('`'))); - sb.Append('<'); - - bool first = true; - foreach (Type t in extends.GetGenericArguments()) + // Default + switch (extends.Name) { - if (!first) - sb.Append(','); - sb.Append(t.GetSyntaxName()); - first = false; + case "String": + return "string"; + case "Int32": + return "int"; + case "Decimal": + return "decimal"; + case "Object": + return "object"; + case "Void": + return "void"; + + default: + return extends.Name; } - - sb.Append('>'); - - return sb.ToString(); } } }