string的不可变性

时间:2023-11-23 20:31:38

1、不可变性

代码如下:

static void Main(string[] args)
{
string str1 = "a";
string str2 = str1;
str2 = "b";
Console.WriteLine("{0}\n{1}", str1, str2);
}

控制台输出结果为:

a

b

2、String可以看成是char的只读数组

<String>.ToLower与<String>.ToUpper这些函数都不会改变字符串的内容,而是把修改后字符串的值以返回值的形式返回了。

3、修改String的某个字符

         如果要对String进行修改,那么就必须创建一个新的字符串,用<String>.ToCharArray()方法得到字符串的Char数组。对数组进行修改,调用new String(Char [])这个构造函数,来创建Char数组的字符串,一旦字符串被创建,那么Char数组的修改也不会造成字符串的变化。
代码如下:

string s1 = "hello";
char[] chars = s1.ToCharArray();
chars[4] = 'h';
Console.WriteLine("s1=" + s1.ToString());
string s2 = new string(chars);
Console.WriteLine("s2=" + s2.ToString());
Console.ReadKey();

控制台输出结果为:

s1=hello;

s2=hellh;