Member 7989122 Ответов: 1

Почему некоторые строковые функции объявляются с помощью "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.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Цитата:
Есть ли какая-то рациональная причина, почему "anyOf" не является "params"?
Возможно, но Microsoft будет единственным, кто действительно знает. Вы можете добавить отзыв на страницах документации или проверить языковые форумы в MSDN. В конце концов, они же эксперты.