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++) for (int pos = 0; pos < name.Length; pos++)
{ {
char c = name[pos]; char c = name[pos];
if (SpecialChars.IndexOf(c) != -1) switch (c)
{ {
case '\\':
case '+':
case ',':
case '[':
case ']':
case '*':
case '&':
if (sb == null) if (sb == null)
{ {
sb = new StringBuilder(name, 0, pos, name.Length + 3); sb = new StringBuilder(name, 0, pos, name.Length + 3);
} }
sb.Append('\\').Append(c); sb.Append("\\").Append(c);
} break;
else if (sb != null) default:
if (sb != null)
{ {
sb.Append(c); sb.Append(c);
} }
break;
}
} }
return sb != null ? sb.ToString() : name; return sb != null ? sb.ToString() : name;
} }