c#引用类型+值类型
时间: 2023-12-28 22:25:21 浏览: 34
C#中有两种数据类型:值类型和引用类型。
值类型是直接存储数据的实际值,它们通常在栈上分配内存。C#的基本类型(如int、float、bool等)以及结构体都属于值类型。当将一个值类型赋值给另一个变量时,会创建一个新的副本。
引用类型是指向存储在堆上的对象的引用。引用类型的变量实际上存储的是对象在堆上的地址。常见的引用类型包括类、接口、委托和字符串。当将一个引用类型赋值给另一个变量时,实际上是将引用复制给了新的变量,它们指向同一个对象。
下面是一个示例,演示了C#中的引用类型和值类型:
```csharp
// 值类型示例
int a = 10;
int b = a; // 创建a的副本赋值给b
b = 20; // 修改b的值,不会影响a的值
Console.WriteLine("a: " + a); // 输出:10
Console.WriteLine("b: " + b); // 输出:20
// 引用类型示例
int[] array1 = new int[] { 1, 2, 3 };
int[] array2 = array1; // 将array1的引用赋值给array2
array2[0] = 10; // 修改array2的值,会影响array1的值
Console.WriteLine("array1[0]: " + array1[0]); // 输出:10
Console.WriteLine("array2[0]: " + array2[0]); // 输出:10
string str1 = "Hello";
string str2 = str1; // 将str1的引用赋值给str2
str2 = "World"; // 修改str2的值,不会影响str1的值
Console.WriteLine("str1: " + str1); // 输出:Hello
Console.WriteLine("str2: " + str2); // 输出:World
```