Files
My-Notes/笔记/CSharp/基础/值类型和引用类型.md
T
2026-04-13 15:40:15 +08:00

47 lines
993 B
Markdown

概念:
==引用类型:string、数组、类==
==值类型:剩下都是,包括数组、enum、结构体==
值类型默认都是0
bool类型是false
引用类型默认值是null
使用区别:
值类型:在相互赋值时,把内容进行拷贝 //他变我不变
引用类型:把相互赋值时,把==地址==进行拷贝 //他变我也变
原因:
值类型和引用类型 存储的内存区域不同,存取方式也不一样
值类型:栈空间 —— 小但是快 (0GC)
引用类型:堆空间 —— 大但是慢 (且有GC)
案例:
值类型:
```Csharp
static void ChangeValue(int value)
{
value =3:
}
static void Main(string[] args)
{
int a = 1;
ChangeValue(1);
cw(a);
}
//仍然输出1
```
引用类型:
```Csharp
static void ChangeValue(int[] value)
{
value =99:
}
static void Main(string[] args)
{
int[] a = {1};
ChangeValue(a);
cw(a[0]);
}
//输出99
```
#基础