C# \0 的意义和解决方案

这篇笔记篇幅较小,主要用于记录和分享。废话不多说,直接上代码看问题。

  private void Form1_Load(object sender, EventArgs e)
        {
            FileStream fs = new FileStream(@"D:\\微信图片_20200731152803.jpg", FileMode.Open, FileAccess.Read);
            int length = (int)fs.Length;
            BinaryReader br = new BinaryReader(fs);
            byte[] buff = new byte[length];
            br.Read(buff, 0, length);
            string str = @Encoding.Default.GetString(buff);
            textBox1.Text = str;
        }

这是一个兄弟给我发过来的代码,在WINFORM解决方案中有这么几行,先不管这位兄弟想干嘛,他找我解决的问题如下:

看这串str 字符  多么富有诗意的一行字符串,but

将这行str字符 显示在textbox中为什么是前面几个字符呢?后面的直接忽视掉了。同时在工具中的可视化编辑工具中展示str是一样的效果

其实这个问题,仔细比对下两处的字符,就会发现程序帮你忽略的是 \0 后面的字符,那难道\0有什么玄机?实际情况还真的是这样,  \0 代表字符串的终止,C#对末尾出现\0 的字符,就会终止对此字符串的所有操作。

那这样就好办了呀,把这个\0 替换掉不就好了吗,来试试看。

打完,收工。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

.NET C# JAVA 基础交流群  1095936339  欢迎入群 交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从入门到放弃-咖啡豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值