一:值类型和引用类型
1.值类型:
值类型源于System.Value家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型
所在的内存区域称之为栈(Stack),只要在代码中修改它,就会在内存区域保存这个值。
(对于值类型,不同的变量会分配不同的存储空间,并且在存储空间中存储的是该变量的值。赋值操作
传递的是变量的值,改变一个变量的值不会影响另一个变量的值)
示例代码:
class program{
static void Main(string[] args)
{
int heightZhang =170;
int heightLi= heightZhang;
Console.WriteLine("去年--张浩的身高是:" +heightZhang+",李明身高是:"+ heightLi);
heightLi =180;
Console.WriteLine("今年--张浩的身高是:" +heightZhang+",李明身高是:"+ heightLi");
}
}
2.引用类型:
引用类型源于System.Object家族,在C#中引用类型主要包括数组,类和接口等。引用类型所在的内存区
二.结构体
1.定义:
访问修饰符 struct 结构名
{
//结构体
}
(1)结构体可以有字段,方法,字段不能赋初始值。
(2)可以不new,但有条件,结构体中有成员变量和成员方法,成员变量没有赋值,调用成员方法,不new会报错,所以一般先new。
三:装箱和拆箱
将值类型转换为引用类型的过程称为装箱,反之称为拆箱
实际开发尽量避免 装/拆 箱
原因:
装/拆 箱都会降低程序性能
四:不同类型的参数传递
概述:
使用值传递,在方法中对参数值的更改在调用后不能保留.
使用ref方式传递,可以保留对参数值的更改.