Почему некоторые строковые функции объявляются с помощью "params", а другие-нет?
Не проблема, просто вопрос:
Вы можете написать: обрезано = не обрезано.Отделка('(', ')', '[', ']');
Но вы не можете написать: pos = line.Метод indexofany('(', ')', '[', ']');
... 'trimChars' - это 'params char[]', 'anyOf' - это 'char[]' (без 'params'). Вы должны написать: pos = строка.IndexOfAny(новый символ[] {'(', ')', '[', ']')};
Есть ли какая-то рациональная причина, почему "anyOf" не является "params"?
Моя первая мысль была о том, что это может испортить перегрузку, так как после "params" больше не допускаются параметры. Существуют перегрузки IndexOfAny с параметрами, завершающими "anyOf". Возможно, это сбило бы с толку компилятор.
Нет, Струна.Split() имеет одну перегрузку 'params char []', другие-с дополнительными параметрами (но для них 'params' опущен для первого параметра 'separator'). Если компилятор может обрабатывать Сплит(), почему она не могла справиться с такой же конструкции Для метод indexofany() и LastIndexOfAny()?
Может быть, программист просто забыл о парамах, или есть рациональная/техническая причина?
Что я уже пробовал:
Упомянутые объявления функций доступны в отображении метаданных в VS.