Я написал функцию Reverse, чтобы перевернуть строку в .net, используя указатели в небезопасном контексте. Мне это нравится.
Я придаю «приветствую» и «х» одинаковое значение. Я наоборот приветствую, к моему удивлению, 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);
}
}