"\u4000\f".TrimEnd(new char[0])
等於"\u4000"
。這是string.TrimEnd中的一個錯誤嗎?
我傳遞一個空數組,所以根據MSDN文檔,任何東西都不應該被移除,並且應該返回"\u4000\f"
。是否有這種行爲的原因?
編輯:澄清預期行爲
編輯:顯然,這在3.5改變了,我一直在尋找的2.0文檔頁面。
"\u4000\f".TrimEnd(new char[0])
等於"\u4000"
。這是string.TrimEnd中的一個錯誤嗎?
我傳遞一個空數組,所以根據MSDN文檔,任何東西都不應該被移除,並且應該返回"\u4000\f"
。是否有這種行爲的原因?
編輯:澄清預期行爲
編輯:顯然,這在3.5改變了,我一直在尋找的2.0文檔頁面。
的文件說,「如果trimChars爲空(在Visual Basic中爲Nothing)或空數組,空格字符,而不是刪除。「
所以不,不是一個錯誤。
的documentation是明確的:
移除一個 集從當前字符串對象中的 陣列指定的字符的所有尾隨發生。
返回值類型:System .. ::字符串 剩下畢竟 出現在 trimChars參數的人物從 當前String對象的末尾刪除的字符串。 如果trimChars爲空(在Visual Basic中沒有任何內容)或空數組,則會刪除空白 字符。
所以你的例子不是bug。
你會期望什麼行爲?
如果你想刪除尾隨NULL字符,你應該使用
"\u4000\f".TrimEnd(new char[1])
該數組爲空。所以什麼都不應該被刪除。 – 2009-01-13 12:49:30