gpt4 book ai didi

c# - 为什么 '\0' .ToString()==string.Empty 返回 FALSE?

转载 作者:太空狗 更新时间:2023-10-29 22:05:21 26 4
gpt4 key购买 nike

我就是不明白要点:如果“\0”是一个空字符,如果一个字符串是一种字符数组,为什么会发生这种情况?

char value = '\0';
bool isEmpty = value.ToString() == string.Empty; // This returns FALSE because
// '\0'.ToString() returns "\0"
// where I expect it to be
// string.empty

最佳答案

没有“空字符”这样的东西,所以你在第一句话中的假设是不正确的。具有单个字符 (U+0000) 的字符串与空字符串不同 - 首先,第一个字符串的长度是 1,而不是 0。

char 上调用 ToString()总是返回一个长度为 1 的字符串,只包含该字符。 IMO,这是唯一有意义的事情。我不知道为什么您会期待其他任何东西。

虽然 U+0000 通常用作终止字符,但它与字符“不存在”不同。字符串“Foo\0Bar”与“FooBar”不同,不应被同等对待。

简而言之:是您的期望不正确,而不是 .NET :)

关于c# - 为什么 '\0' .ToString()==string.Empty 返回 FALSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com