猿问

值类型和引用类型的具体区别和使用时的注意事项

一直很纠结他们,有没有很好的列子给解释一下啊@!


            string str1 = "*^_^*";
            string str2 = str1.PadLeft(6, '(');
            string str3 = str2.PadRight(7, ')');
            Console.WriteLine(str1);
            Console.WriteLine(str3);

就想像这样的 都说string时引用类型

为什么str1和str3输出的值不一样啊


君遥
浏览 1234回答 1
1回答

sixGod

String类型虽然是引用类型,但在类似string str3 = str2.PadRight(7, ')');这种赋值时,系统已经帮你new了一个新的String对象,所以str3的改动不会影响str1。String类型是比较特别的应用类型,你用我们自己创建的类就很好理解了,如有类Student,属性stuName;Student stu1 = new Student();Student stu2 = stu1;stu1.stuName = "张三";此时stu1和stu2的stuName都是“张三”,现在将stu1.stuName = "李四",这时stu2.stuName也会变成“李四”,但其实我们并没对stu2做任何动作而值类型就不是这样了,如int a = 5;int b = a;此时我让a=10;但b的值还是5,不会跟着a改变
随时随地看视频慕课网APP
我要回答