这是string.TrimEnd中的错误吗?

时间:2009-01-13 12:40:24

标签: c# string

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

等于"\u4000"

我传递的是一个空数组,因此根据MSDN文档,不应删除任何内容,并且应返回"\u4000\f"。这种行为有原因吗?

编辑:澄清预期的行为

编辑:显然,这在3.5中有所改变,我正在查看2.0文档页面。

3 个答案:

答案 0 :(得分:10)

文档说“如果trimChars为null(在Visual Basic中为Nothing)或空数组,则会删除空格字符。”

所以不,不是错误。

答案 1 :(得分:3)

documentation很清楚:

  

删除a的所有尾随事件   一组字符   来自当前String对象的数组。

     

返回值类型:System .. ::。String   毕竟还剩下的字符串   中出现的人物   trimChars参数将从中删除   当前String对象的结尾。   如果trimChars为null(在Visual中没有任何内容)   基本)或空数组,空格   将删除字符。

所以你的例子不是bug。

答案 2 :(得分:0)

您会期待什么行为?

如果要删除尾随的NULL字符,则应使用

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