一直很纠结他们,有没有很好的列子给解释一下啊@! string str1 = "*^_^*"; string str2 = str1.PadLeft(6, '('); string str3 = str2.PadRight(7, ')'); Console.WriteLine(str1); Console.WriteLine(str3);就想像这样的 都说string时引用类型为什么str1和str3输出的值不一样啊
1 回答
sixGod
TA贡献34条经验 获得超22个赞
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改变
- 1 回答
- 0 关注
- 1233 浏览
添加回答
举报
0/150
提交
取消