Pergunta

Estou brincando com Pex E um dos parâmetros que passa para o meu método é "\0".

O que isso significa? Meu palpite é uma corda vazia ("") com base no conteúdo do meu método. No entanto, se for o mesmo, então por que não apenas usar "" ao invés de "\0"?

Alguém sabe o que é?

Foi útil?

Solução

' 0' é um "caráter nulo". É usado para rescindir seqüências de caracteres em C e algumas partes de C ++. Pex está fazendo um teste para ver como seu código lida com o caráter nulo, provavelmente procurando o Byte nulo de veneno Exploração de segurança.

A maioria do código C# não tem nada a temer; Se você passar sua string para o código não gerenciado, no entanto, poderá ter problemas.

Editar:

Só para ser explícito ... Pex está passando uma string contendo um caractere nulo. Isto é não uma referência nula.

Outras dicas

É uma string que contém o caractere ' 0'. C# não trata isso de maneira particularmente especial - é apenas o caractere unicode u+0000. Se você escreve:

int firstCodePoint = text[0];

Então você encontrará firstCodePoint é 0.

É uma corda com um personagem nulo. Bibliotecas de string mais antigas - como as usadas nas bibliotecas C ou mais antigas - usaram o caractere ' 0' para indicar o final da string.

Ambientes mais recentes como .NET usam um sistema diferente, mas há muita história em torno de terminar uma string com ' 0', de modo que é um ponto de erro comum. Bibliotecas de teste como o PEX o usarão para garantir que seu programa lida corretamente.

Uma sequência de comprimento 1, contendo o caractere u0000 (também conhecido como nul). Este personagem não é tratado especialmente.

Em C, que usa 0 para encerrar a string, você também aloca uma sequência de comprimento 1. Nesse caso, as funções de string padrão relatarão um comprimento de 0, uma vez que a string contém 0, além de ser encerrada. Você pode modificar com segurança o STR [0] ou um único caractere nele.

Escape Sequence  
\0    
Character Name 
Null    
Unicode Encoding     
0x0000

Veja este link.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top