在C# .net中,如果我使用
因此,根据我的测试,以下语句似乎解决了这个问题:
string.Empty
并在其上调用.FirstOrDefault()
,以获取字符串的第一个字符,则会返回空字符引用,即\0
,而不是空字符,即char?
。然后将其转换为ToString(),其结果与string.Empty
不同。因此,根据我的测试,以下语句似乎解决了这个问题:
string.Empty.FirstOrDefault().ToString() != string.Empty
((char?)null).ToString() == string.Empty
string.Empty.FirstOrDefault().ToString() == '\0'.ToString()
是只有我感觉这种情况不一致吗?这对我来说并不明显,我原本认为string.Empty.FirstOrDefault().ToString()
将解析为与string.Empty
相同的值。有没有人能够链接我到更深入涵盖此陷阱的文档?
string.Empty.FirstOrDefault()
返回什么?你认为为什么会这样?同时,创建一个名为bob
的空整数数组。bob.FirstOrDefault()
会返回什么,为什么? - mjwills'\0'.ToString() != string.Empty
呢? - Oxymoron