C#语法_变量

变量

变量包括引用类型和值类型

  • 1.内存分配:
    值类型的变量直接存储数据,通常分配在栈上,栈内存的分配和释放速度较快,适合存储较小的数据
    引用类型的变量存储的是对象的引用(内存地址),而实际上数据存储在堆上,堆内存的分配和释放速度较慢,适合存储大量的数据。
  • 2.生命周期
    值类型的变量在使用完毕后会被自动回收,而引用类型的变量需要垃圾回收机制(GC)来管理内存。
  • 3.装箱与拆箱
    装箱:将值类型转换为引用类型。装箱会创建一个新的对象,并将值类型的数据复制到该对象中。
    拆箱:将引用类型转换为值类型。拆箱会从对象中复制数据到值类型变量中。拆箱需要显式类型转换
  • 4.类型举例
    值类型:int float bool char double struct enum等,默认值不为空
    引用类型:class string interface delegate array等,默认值为null

类型总结

  • 值类型:直接存储数据,分配在栈上,赋值时创建副本,性能好
  • 引用类型:存储对象引用,分配在堆上,赋值时共享引用,性能差,需要GC管理内存,适合存储大量的数据。

变量作用域

变量的作用域通常由花括号{}决定,在if、for、方法等代码块内声明的是局部变量只在声明他们的代码块中可见 静态变量是类级别上声明的整个类中可见

小补充1:对于值类型如果要让他可空(默认值为空),直接在类型后加一个?即可

1
int? i;

小补充2:??Null合并运算符

1
2
//假如num为空则返回23给a,非空则返回num给a
int a=num??23;
comments powered by Disqus