我编写了一个函数 Reverse 来使用不安全上下文中的指针来反转 .net 中的字符串。我喜欢这样。
我分配“greet”和“x”相同的值。我惊讶地向我打招呼,x 也被逆转了。
using System;
class Test{
private unsafe static void Reverse(string text){
fixed(char* pStr = text){
char* pBegin = pStr;
char* pEnd = pStr + text.Length - 1;
while(pBegin < pEnd){
char t = *pBegin;
*pBegin++ = *pEnd;
*pEnd-- = t;
}
}
}
public static void Main(){
string greet = "Hello World";
string x = "Hello World";
Reverse(greet);
Console.WriteLine(greet);
Console.WriteLine(x);
}
}