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

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

myString.Replace ('c', '')

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


当前回答

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

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

其他回答

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

myString.Replace("c", "")

你为什么不想这么做?

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

与字符串不同,char是一个大小固定的离散的东西。字符串实际上是字符的容器。

所以,Char。在这种情况下,空是没有意义的。如果你有一个char,它就不是空的。

那么BOM呢,微软添加到文件开头的神奇字符(至少是XML)?

这种用法的原因是:myString。Replace ('c', ") 所以从myString中删除所有的'c'实例。

要从字符串中删除特定的字符,可以使用string重载:

 myString = myString.Replace ("c", String.Empty);

你的语句

 myString.Replace ('c', '\0')

不会删除任何字符。它只会将它们替换为'\0' (End-Of-String, EOS),结果不同。一些字符串操作可能会在遇到EOS时停止,但在. net中,大多数操作将像对待其他char一样对待它。最好尽量避免使用“\0”。