2009-01-13 7 views
3
"\u4000\f".TrimEnd(new char[0]) 

est égal à "\u4000".Est-ce un bug dans string.TrimEnd?

Je passe un tableau vide, donc, selon la documentation MSDN, rien ne doit être supprimé et "\u4000\f" doit être retourné. Y a-t-il une raison à ce comportement?

EDIT: Clarifiée comportement attendu

EDIT: Apparemment, cela a changé en 3.5, je regardais la page de documentation 2.0.

Répondre

10

la documentation dit: « Si trimChars est null (Nothing en Visual Basic) ou un tableau vide, caractères espaces blancs sont supprimés à la place "
Donc non, pas un bug.

3

Le documentation est clair:

Supprime toutes les occurrences de fuite d'une ensemble de caractères spécifiées dans un objet à partir de la chaîne en cours de matrice .

Valeur de retour Type: System .. :: Chaîne La chaîne qui reste après toutes les occurrences des caractères dans le paramètre trimChars sont retirés de la fin de l'objet String en cours.. Si trimChars est null (Nothing dans Visual Basic) ou un tableau vide, les caractères blancs sont supprimés à la place.

Votre exemple n'est donc pas un bogue.

+0

Le tableau est vide. Donc, rien ne devrait être supprimé. –

0

Quel comportement attendez-vous?

Si vous voulez supprimer les caractères NULL arrière, vous devez utiliser

"\u4000\f".TrimEnd(new char[1])