Csharp/C#教程:C# – “ 0”等同于什么?分享


C# – “ 0”等同于什么?

我正在玩Pex ,它传递给我的方法的参数之一是""

那是什么意思? 我的猜测是基于我的方法内容的空字符串( "" )。 但是,如果它是相同的,为什么不使用""而不是""

有人知道这是什么吗?

‘ 0’是“ 空字符 ”。 它用于终止C中的字符串和C ++的某些部分。 Pex正在测试你的代码如何处理null字符,可能正在寻找Poison Null Byte安全漏洞。

大多数C#代码都没有什么可担心的; 但是,如果将字符串传递给非托管代码,则可能会出现问题。

编辑:

只是为了明确…… Pex传递一个包含空字符的字符串。 这不是空引用。

它是一个包含字符’ 0’的字符串。 C#不以任何特别的方式对待它 – 它只是unicode字符U + 0000。 如果你写:

 int firstCodePoint = text[0]; 

然后你会发现firstCodePoint是0。

它是一个带有空字符的字符串。 较旧的字符串库 – 与C或较旧的C ++库中使用的字符串库一样 – 使用’ 0’字符表示字符串的结尾。

像.Net这样的新环境使用不同的系统,但是以’ 0’结束字符串有很多历史,这是一个常见的错误点。 像Pex这样的测试库将使用它来确保您的程序正确处理它。

一个长度为1的字符串,包含字符 u0000(又名NUL)。 这个角色没有特别对待。

在C中,它使用 0来终止字符串,你还分配一个长度为1的字符串。在这种情况下,标准字符串函数将报告长度为0,因为字符串包含 0以及终止它。 您可以安全地修改str [0],或者将单个字符strncat到其中。

 Escape Sequence  Character Name Null Unicode Encoding 0x0000 

看到这个链接。

上述就是C#学习教程:C# – “ 0”等同于什么?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/950731.html

(0)
上一篇 2021年11月17日
下一篇 2021年11月17日

精彩推荐