Frage

Ich spiele mit Pex und einer der Parameter es geht in meine Methode ist "\0".

Was bedeutet das? Meine Vermutung ist, eine leere Zeichenfolge ("") basierend auf dem Inhalt meiner Methode. Allerdings, wenn es das gleiche ist, warum dann nicht nur "" statt "\0" verwenden?

Wer weiß, was es ist?

War es hilfreich?

Lösung

'\ 0' ist ein " Nullzeichen ". Es wird verwendet, Strings in C und einige Teile von C ++ zu beenden. Pex macht einen Test, um zu sehen, wie Sie Ihren Code, um das Null-Zeichen behandelt, wahrscheinlich die Suche nach dem Gift Null Byte Sicherheit nutzen.

Die meisten C # -Code hat nichts zu befürchten; wenn Sie Ihre Zeichenfolge nicht verwalteten Code übergeben, jedoch können Sie Probleme haben.

Edit:

Nur um explizite ... Pex ist vorbei eine Zeichenfolge ein Null-Zeichen enthält. Dies ist nicht NULL-Verweis.

Andere Tipps

Es ist eine Zeichenfolge, die die Zeichen enthält ‚\ 0‘. C # behandelt dies in keine besonders speziellen Art und Weise - es ist nur Unicode-Zeichen U + 0000. Wenn Sie schreiben:

int firstCodePoint = text[0];

dann werden Sie feststellen, firstCodePoint 0.

Es ist eine Zeichenkette mit einem Null-Zeichen. Ältere String-Bibliotheken - wie in C oder älteren C ++ Bibliotheken - die ‚\ 0‘ verwendet, um das Ende der Zeichenfolge anzuzeigen.

Neuere Umgebungen wie .NET verwenden, um ein anderes System, aber es gibt eine Menge Geschichte um einen String mit ‚\ 0‘ am Ende, so dass es ein gemeinsamer Punkt des Fehlers ist. Testen Bibliotheken wie Pex wird es verwenden, um sicherzustellen, dass Ihr Programm Greift es richtig zu machen.

Eine Zeichenkette der Länge 1, die mit dem Zeichen \ u0000 (aka NUL). Dieses Zeichen wird nicht speziell behandelt.

In C, die \ 0 verwendet Zeichenfolge zu beenden, weisen Sie auch einen String der Länge 1. In diesem Fall ist die Standard-String-Funktionen eine Länge von 0 berichten, da die Zeichenfolge enthält \ 0 sowie wird damit beendet . Sie könnten sicher ändern str [0], oder ein einzelnes Zeichen in sie strncat.

Escape Sequence  
\0    
Character Name 
Null    
Unicode Encoding     
0x0000

diesen Link sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top