为什么没有像String.Empty一样的Char.Empty?

319

这是有原因的吗?我问这个问题是因为如果您需要使用大量的空字符,那么您会遇到使用大量空字符串时相同的情况。

编辑:这种用法的原因是:

myString.Replace ('c', '')

请从myString中删除所有 'c' 的实例。


1
是的,我用那个词是因为没有更好的词了。即推荐使用String.Empty而不是“”。 - Joan Venge
3
如果你担心有时会因打错而出现问题,为什么不简单地将功能包装在扩展方法中,例如RemoveAll(this string s, params char[] toRemove)?这样就可以清晰地传达意图,同时避免出错。 - bzlm
12
我使用string.Empty的唯一原因是,我认为Empty提供的空对象比空引号更能表达意图。空引号可能来源于合并问题、思维混乱,或者本来就是代码的实际意图,而Empty明确告诉我开发人员打算让该字符串不包含数据。 - Ritch Melton
3
""和string.Empty之间有区别。虽然没有人真的关心,但是""会创建一个对象,而string.Empty则利用已经创建好的对象。但是这个区别非常小,在普通情况下不会有任何影响。 - marcelo-ferraz
4
关于@marcelo-ferrazm所说的“""创建一个对象”:不,它并没有这样做。 - H H
显示剩余2条评论
23个回答

-1
public static string QuitEscChars(this string s) 
{
    return s.Replace(((char)27).ToString(), "");
}

1
你好!虽然这段代码可能解决了问题,但是包括解释它如何以及为什么解决了问题将有助于提高您的帖子质量,并可能导致更多的赞。请记住,您正在回答未来读者的问题,而不仅仅是现在提问的人。请[编辑]您的答案以添加解释并指出适用的限制和假设。 - Brian61354270

-3
使用
myString.Replace ("c", "")

2
这是 Ian Grainger 在 2013 年的一个答案的副本。 - Joe Gayetty

-4

从字符串中最简单的删除字符的方法是将其修剪(Trim)

cl = cl.Trim(' ');

会移除字符串中所有的空格


如果有人想使用.Replace('c', ' '),这对于去除其他空格的缺点非常有帮助。但它比其他很多答案更有用。 - Jan
1
不对!Trim仅从字符串的开头和结尾删除字符,而不是中间。 - userSteve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接