TypeNameParser.Escape() performance tweak by Marek Safar.

This commit is contained in:
jfrijters 2012-01-24 17:47:06 +00:00
Родитель 0dfd62d2aa
Коммит 82a4ef485c
1 изменённых файлов: 20 добавлений и 10 удалений

Просмотреть файл

@ -122,18 +122,28 @@ namespace IKVM.Reflection
for (int pos = 0; pos < name.Length; pos++)
{
char c = name[pos];
if (SpecialChars.IndexOf(c) != -1)
switch (c)
{
case '\\':
case '+':
case ',':
case '[':
case ']':
case '*':
case '&':
if (sb == null)
{
sb = new StringBuilder(name, 0, pos, name.Length + 3);
}
sb.Append('\\').Append(c);
}
else if (sb != null)
sb.Append("\\").Append(c);
break;
default:
if (sb != null)
{
sb.Append(c);
}
break;
}
}
return sb != null ? sb.ToString() : name;
}