public static string ToCSharpName(Type type, bool full)
{
if (type.IsArray)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(TypeData.ToCSharpName(type.GetElementType(), full));
stringBuilder.Append('[');
int arrayRank = type.GetArrayRank();
for (int i = 1; i < arrayRank; i++)
{
stringBuilder.Append(',');
}
stringBuilder.Append(']');
return(stringBuilder.ToString());
}
if (type.IsGenericType && !type.IsGenericTypeDefinition)
{
StringBuilder stringBuilder2 = new StringBuilder();
stringBuilder2.Append(TypeData.ToCSharpName(type.GetGenericTypeDefinition(), full));
stringBuilder2.Append('<');
foreach (Type type2 in type.GetGenericArguments())
{
stringBuilder2.Append(TypeData.ToCSharpName(type2, full)).Append(',');
}
stringBuilder2.Length--;
stringBuilder2.Append('>');
return(stringBuilder2.ToString());
}
string text = (!full) ? type.Name : type.FullName;
text = text.Replace('+', '.');
int num = text.IndexOf('`');
text = ((num <= 0) ? text : text.Substring(0, num));
if (TypeData.IsKeyword(text))
{
return("@" + text);
}
return(text);
}