这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。

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

myString.Replace ('c', '')

所以从myString中移除所有的'c'实例。


当前回答

使用Char。MinValue,它的工作原理与“\0”相同。但要注意它与String.Empty不同。

其他回答

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

不能回答你的第一个问题-但对于你遇到的特定问题,你可以只使用字符串而不是字符,对吗?:

myString.Replace("c", "")

你为什么不想这么做?

char是一种值类型,因此它的值不能为空。(除非它被包装在Nullable容器中)。

由于它不能为空,in包含一些数字代码,每个代码都映射到某个字符。

没有空char这样的东西。你能得到的最接近的是“\0”,Unicode“null”字符。既然你可以将它嵌入到字符串字面量中,或者很容易地表达它,为什么要为它设置一个单独的字段呢?同样,“很容易混淆”和“”参数不适用于“\0”。

如果你能给出一个例子,说明你想在哪里使用它,以及为什么你认为它会更好,这可能会有帮助……

myString = myString.Replace('c'.ToString(), "");

好吧,这对于删除字母来说不是特别优雅,因为. replace方法有一个接受字符串参数的重载。但这适用于删除回车符、换行符、制表符等。下面的例子删除了制表符:

myString = myString.Replace('\t'.ToString(), "");