gpt4 book ai didi

c# - 转换空字符引用 ToString()

转载 作者:太空狗 更新时间:2023-10-30 00:47:48 27 4
gpt4 key购买 nike

在 C# .net 中,如果我获取一个 string.Empty 并对其调用 .FirstOrDefault() 以获取字符串的第一个字符,它将返回空字符引用,即 \0,而不是空字符,即 char?。然后转换此 ToString() 没有与 string.Empty

相同的值

因此根据我的测试,以下语句似乎解析为 true:

string.Empty.FirstOrDefault().ToString() != string.Empty

((char?)null).ToString() == string.Empty

string.Empty.FirstOrDefault().ToString() == '\0'.ToString()

这只是我还是感觉不一致?最初这对我来说并不明显,我假设 string.Empty.FirstOrDefault().ToString() 会解析为与 string.Empty 相同的值。任何人都可以将我链接到更深入地介绍这个陷阱的文档吗?

最佳答案

string是一个 IEnumerable<char> , 所以 FirstOrDefault()在空字符串上返回 default(char) , 不是 default(char?) .

default(char)'\0' .

(几乎)不可能编写适用于引用类型但返回 T? 的通用方法对于值类型(这是您在这里所期望的)。

关于c# - 转换空字符引用 ToString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151652/

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