一:值类型和引用类型
1. 值类型:
值类型源于 System.Value 家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型
所在的内存区域称之为栈(Stack),只要在代码中修改它,就会在内存区域保存这个值。
(对于值类型,不同的变量会分配不同的存储空间,并且在存储空间中存储的是该变量的值。赋值操作
传递的是变量的值,改变一个变量的值不会影响另一个变量的值)
2. 引用类型:
引用类型源于 System.Object 家族,在 C# 中引用类型主要包括数组,类和接口等。引用类型所在的内存区
域称之为堆
整型 | int | int | 年龄 |
浮点型 | float | float | 成绩 |
双精度型 | double | double | 圆周率 |
布尔型 | boolean | bool | 是否对错 |
枚举型 | enum | enum | 颜色 |
字符串 | String | string | 家庭住址 |
二:结构
1. 语法:
访问修饰符 struct 结构名
{
// 结构体
}
2. 结构定义有以下特点
a. 结构中可以有字段也可以有方法
b. 定义时,结构的字段不能被赋值
3. 结构的调用注意事项
a. 在某些特定情况下可以不用 new,直接定义结构对象即可(尽可能的去 new)
b. 声明结构对象后,必须给结构体的成员赋初值
三:装箱和拆箱
装箱是将值类型转换为引用类型的操作;拆箱是将引用类型转换为值类型的操作。
static void Main(string[] args)
{
int i = 123;
object o = i; // 装箱
int j = (int)o; //拆箱
}
四:不同类型的参数传递
值传递和引用传递
有没有 ref,有 ref 的为引用传递,没有的为值传递