string对象的可变实现
#string对象的一个重要性质是不可变性;但在不安全代码环境下也是可以实现可变的
见代码
class Program { unsafe static void Main(string[] args) { Console.WriteLine("测试开始:"); string s1 = "hello"; string s2 = string.Copy(s1);//复制对象本身,新建对象,深拷贝 string s3 = s1.Clone().ToString(); //复制地址,克隆(浅拷贝) fixed (char* p = s1) { p[0] = 'a'; } Console.WriteLine($"s1={s1}"); Console.WriteLine($"s2={s2}"); Console.WriteLine($"s3={s3}"); Console.WriteLine(object.ReferenceEquals(s1, s2)); Console.WriteLine(object.ReferenceEquals(s1, s3)); Console.ReadKey(); } }