static void Main(string[] args
)
{ 字符串一旦被创建就不可修改,字符串具有不可变性!
string x1
= "Hello Money!";
string r
=x1
.ToUpper(); 字符串具有不可变性,转换为大写时,要赋值给新的变量
Console
.WriteLine(r
);
string s1
= "abc";
string s2
= "x";
s1
= s1
+ s2
;
Console
.WriteLine(s1
); s2输出为abcx 与前面字符串不可变性冲突!!!
原因是:s1
+s2的和创建了一个全新的内存空间,s1重新指向了全新的内存空间,放弃了原有的
"abc",指向了
"abcx"
Console
.ReadKey();
}
static void Main(string[] args
)
{
string a
= "a"; 字符串一旦被创建就不可修改,字符串具有不可变性!
string b
= "b";
string c
= "c";
a
= a
+ b
;
a
= a
+ c
;
Console
.WriteLine(a
);
Console
.ReadKey();
}
static void Main(string[] args
)
{
string s1
= "abc";
string a
= "a";
string b
= "b";
string c
= "c";
string s2
= a
+ b
+ c
; s1和s2不为同一对象 原因是s2新创建了一个空间,返回的是一个新值
string s3
= "a" + "b" + "c"; s1和s3为同一对象 原因是s1和s3写法是相同的,字符串池中如果已有s1的abc
则直接将abc的地址返回给s3,它们共用一个空间
}