Это ошибка в string.TrimEnd? - PullRequest
3 голосов
/ 13 января 2009
"\u4000\f".TrimEnd(new char[0])

равно "\u4000".

Я передаю пустой массив, поэтому в соответствии с документацией MSDN ничего не должно быть удалено и "\u4000\f" должно быть возвращено. Есть ли причина для такого поведения?

РЕДАКТИРОВАТЬ: Уточненное ожидаемое поведение

РЕДАКТИРОВАТЬ: Очевидно, это изменилось в 3.5, я смотрел на странице документации 2.0.

Ответы [ 3 ]

10 голосов
/ 13 января 2009

Документация гласит: «Если trimChars имеет значение null (Ничего в Visual Basic) или пустой массив , вместо него удаляются пробельные символы».
Так что нет, не ошибка.

3 голосов
/ 13 января 2009

Документация ясна:

Удаляет все конечные вхождения набор символов, указанных в массив из текущего объекта String.

Возвращаемое значение Тип: System .. ::. String Строка, которая остается в конце концов появления символов в Параметр trimChars удаляется из конец текущего объекта String. Если trimChars равен нулю (ничего в Visual Basic) или пустой массив, пробел вместо этого удаляются символы.

Так что ваш пример не ошибка.

0 голосов
/ 13 января 2009

Какое поведение вы ожидаете?

Если вы хотите удалить завершающие символы NULL, вы должны использовать

"\u4000\f".TrimEnd(new char[1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...