📅  最后修改于: 2023-12-03 15:41:32.813000             🧑  作者: Mango
C#中,数据类型可以被分为可变和不可变。不可变类型的数据对象在被创建后,其值不能被修改。而可变类型的数据对象允许其值被修改。这种不同类型的数据对象使用的是不同的内存存储方式。
不可变类型是指在创建后,其值不能被修改的类型。例如,C#中的字符串类型就是不可变类型。这意味着,一旦创建了一个字符串对象,它就不能被修改。任何尝试修改这个对象的操作都会返回一个新的字符串对象。
以下是一个演示不可变类型的示例代码:
string str1 = "Hello";
string str2 = str1;
str1 += " World";
Console.WriteLine(str1); // 输出 "Hello World"
Console.WriteLine(str2); // 输出 "Hello"
在这个示例中,我们首先创建了一个字符串对象str1
并把它赋值给了str2
。然后我们对str1
执行了一个字符串拼接操作,使其变为了"Hello World"。但请注意,当我们打印str2
时,它仍然是 "Hello",因为字符串类型是不可变类型。
在C#中,以下类型都是不可变类型:
与不可变类型相反,可变类型是指在创建后,其值可以被修改的类型。例如,C#中的数组和列表类型都是可变类型。这意味着,我们可以随意地修改它们的元素,而不必创建一个新的数组或列表对象。
以下是一个演示可变类型的示例代码:
int[] arr1 = { 1, 2, 3 };
int[] arr2 = arr1;
arr1[0] = 0;
Console.WriteLine(arr1[0]); // 输出 "0"
Console.WriteLine(arr2[0]); // 输出 "0"
在这个示例中,我们首先创建了一个整型数组arr1
并把它赋值给了arr2
。然后我们把arr1
数组的第一个元素修改为0。请注意,当我们打印arr2
时,它也是0,这是因为数组类型是可变类型。
在C#中,以下类型都是可变类型:
C#中,数据类型可以被分为可变和不可变类型。不可变类型的对象在创建后,其值不能被修改,而可变类型的对象允许其值被修改。理解这些类型的区别非常重要,因为它们对C#代码的性能和可维护性都有着重要的影响。