在C#中,(byte)' '转换为字符串后为何不包含' '?
为什么byte类型的换行符ToString后Contains换行符返回false?
核心原因是byte和char的ToString()行为完全不同:
对于
((byte)'\n').ToString():
byte是数值类型,(byte)'\n'本质是十进制数值10。调用ToString()时,会把这个数值转换成对应的数字字符串,结果是"10"。此时调用Contains('\n')是在字符串"10"里查找换行符,自然找不到,返回false。对于
'\n'.ToString():
char是Unicode字符类型,'\n'本身代表换行符字符。调用ToString()时,会直接生成包含该换行符的字符串。此时调用Contains('\n')能匹配到目标字符,返回true。
再举个更直观的对比例子:
((byte)65).ToString()返回"65"(数值转字符串)((char)65).ToString()返回"A"(字符转字符串)
内容的提问来源于stack exchange,提问作者D_00
相关产品推荐
相关产品推荐

