C# String.Length from Microsoft Documentation

前端 未结 2 1875
情歌与酒
情歌与酒 2021-01-28 22:20

Microsoft documentation states that this code will return 7 characters

The Length property returns the number of Char objects in this instance, not

相关标签:
2条回答
  • 2021-01-28 23:02

    You would have to prevent the interpretation of the literal by the compiler. This can be done with the @ prefix, like this:

    var characters = @"abc\u0000def";
    

    The Length property of this string will then return 12, but there will no longer be an actual unicode character in the string.

    0 讨论(0)
  • 2021-01-28 23:12

    The C# compiler will replace \u0000 by a null byte. That means, at execution time you will simply have only 7 characters in your memory.

    If you don't want the compiler to replace the special char, you have to escape the backslash in the first place:

    string characters = "abc\\u0000def";
    Console.WriteLine(characters.Length);    // Displays 12
    
    0 讨论(0)
提交回复
热议问题