Microsoft文档中的C#String.Length
Microsoft文档声明此代码将返回7个字符
Length属性返回此实例中Char对象的数量,而不是Unicode字符数。
string characters = "abc\u0000def"; Console.WriteLine(characters.Length); // Displays 7
我将需要一个函数来返回结果12,因为有12个不同的字符。 我可以使用哪种function?
您必须阻止编译器对文字的解释。 这可以使用@前缀完成,如下所示:
var characters = @"abc\u0000def";
然后,此字符串的Length
属性将返回12,但字符串中将不再存在实际的unicode字符。
C#编译器将用空字节替换\u0000
。 这意味着,在执行时,您的内存中只有7个字符。
如果您不希望编译器替换特殊字符,则必须首先转义反斜杠:
string characters = "abc\\u0000def"; Console.WriteLine(characters.Length); // Displays 12