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

等於"\u4000"這是string.TrimEnd中的一個錯誤嗎?

我傳遞一個空數組,所以根據MSDN文檔,任何東西都不應該被移除,並且應該返回"\u4000\f"。是否有這種行爲的原因?

編輯:澄清預期行爲

編輯:顯然,這在3.5改變了,我一直在尋找的2.0文檔頁面。

回答

10

的文件說,「如果trimChars爲空(在Visual Basic中爲Nothing)或空數組,空格字符,而不是刪除。「
所以不,不是一個錯誤。

3

documentation是明確的:

移除一個 集從當前字符串對象中的 陣列指定的字符的所有尾隨發生。

返回值類型:System .. ::字符串 剩下畢竟 出現在 trimChars參數的人物從 當前String對象的末尾刪除的字符串。 如果trimChars爲空(在Visual Basic中沒有任何內容)或空數組,則會刪除空白 字符。

所以你的例子不是bug。

+0

該數組爲空。所以什麼都不應該被刪除。 – 2009-01-13 12:49:30

0

你會期望什麼行爲?

如果你想刪除尾隨NULL字符,你應該使用

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