找了半天这个bug。为什么第三种情况会出现意想不到的结果?
// case 1
string value1 = "a" + "a" + "A";
byte[] asciiBytes1 = Encoding.ASCII.GetBytes(value1); // expected: 97 - 97 - 65
Console.WriteLine(string.Join(" - ", asciiBytes1)); // result: 97 - 97 - 65
// case 2
string value21 = 'a' + "A";
byte[] asciiBytes21 = Encoding.ASCII.GetBytes(value21); // expected: 97 - 65
Console.WriteLine(string.Join(" - ", asciiBytes21)); // result: 97 - 65
// case 3
string value22 = 'a' + 'a' + "A";
byte[] asciiBytes22 = Encoding.ASCII.GetBytes(value22); // expected: 97 - 97 - 65
Console.WriteLine(string.Join(" - ", asciiBytes22)); // result: 49 - 57 - 52 - 65
最佳答案
这是操作的顺序,在所有其他示例中,您都将字符添加到字符串中。然而,在第三个示例中,您将一个字符添加到一个字符,该字符充当字节并进行整数乘法。
然后将它的整数添加到字符串“A”
所以 'a' + 'a' = 194 194 + “A” = 197A
这就是您看到的结果
关于c# - 从字符声明字符串会产生意外结果。为什么会这样呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64861918/