C#字符串长度

时间:2018-08-13 03:44:14

标签: c#

为什么这两个字符串返回不同的长度值。 “ CertificateKey”是一个属性。返回长度为41。但是,等效的常量字符串返回40。如果我将certificate的值复制为常量,则长度返回41。为什么?!

// This is the property. Length 41
CertificateKey.Length

41

// This is a constant of the same string. Length 40
"9FE90CA8A4138F65E9E2C67D1F37B9D5B9919384".Length

40

// This is a copy of the value of the property above. Length 41
"‎9FE90CA8A4138F65E9E2C67D1F37B9D5B9919384".Length

41

1 个答案:

答案 0 :(得分:4)

我将您的两个字符串文字复制并粘贴到LINQPad中,发现我可以重现您的结果,因此我像这样打印每个字符:

var a = "9FE90CA8A4138F65E9E2C67D1F37B9D5B9919384";
var b = "‎9FE90CA8A4138F65E9E2C67D1F37B9D5B9919384";
foreach (char c in a) Console.WriteLine($"{(int)c:X}");
Console.WriteLine("---");
foreach (char c in b) Console.WriteLine($"{(int)c:X}");

并得到以下结果:

39
46
[...]
34
---
200E
39
46
[...]
34

{200Eleft-to-right mark