C#中string类型是一个比较特别的类型,它是一种引用类型,但在使用中,它表现的像一个值类型一样。这是因为string是不可变的(immutable)。
string具有以下的一些特性:
1. string是一个字符序列,是String类的一个别名,别且它是一个关键字。
2. string是引用类型,每个string实例是一个常量,是不可变的,因此对一个string进行修改时,实际上都是创建了一个新实例。
1 static void Main(string[] args)
2 {
3
4 string str = "First";
5 string str_1 = str;//str_1与str指向同一个实例
6 Console.WriteLine(string.ReferenceEquals(str, str_1));//结果是True
7 str += "New";//修改str的值
8 Console.WriteLine(string.ReferenceEquals(str, str_1));//结果是False
9 }
2 {
3
4 string str = "First";
5 string str_1 = str;//str_1与str指向同一个实例
6 Console.WriteLine(string.ReferenceEquals(str, str_1));//结果是True
7 str += "New";//修改str的值
8 Console.WriteLine(string.ReferenceEquals(str, str_1));//结果是False
9 }