在C#中string类的索引器是只读的,只能通过索引器去访问string中指定位置上的字符,而不能通过它来改写指定位置上的字符。

这里介绍一种方法直接改写string中的字符,而不是通过string类提供的方法。这里需要用到fixed语句,关于fixed关键字的说明和使用可以参考msdn fixed 语句。在了解了fixed关键字的作用之后,我们可以继续进行下面的代码了

static void Main(string[] args)
        {
            string str = "Hello world";
            unsafe
            {
                fixed (char* p = str)
                {
                    p[2] = 'k';
                    Console.WriteLine(str);
                }
            }
        }
 

编译运行这段代码时需要启用“Allow unsafe code”编译选项,编译后运行.exe文件会输出下面的字符串:这个选项的修改地方在VS中右键项目,属性里 就可以找到。

"Heklo world"

https://blog.csdn.net/feellow/article/details/4646367