1.值类型和引用类型
1)值类型:源于system.valueType家族数组
值类型数据所在的内存区域为栈。性能
2)引用类型源于system.object家族。spa
3)值类型:(1)基本数据类型{int,long,double,byte~~~~}3d
(2)枚举:enumblog
(3)结构体:struct接口
引用类型:(1)类内存
(2)接口:interface字符串
(3)数组string
(4)字符串:string变量
2.结构体
1)定义:
访问修饰符 struct 结构名
{
//结构体
}
(1)结构体能够有字段,方法,字段不能赋初始值。
(2)能够不new,但有条件,结构体中有成员变量和成员方法,成员变量没有赋值,调用成员方法,不new会报错,因此通常先new。
例如:
public struct Student
{
public int num;
public void show()
{
}
}
部分略 Main()
{
Student stu;
stu.num;
stu.show(); //没有给成员变量赋值,报错
}
部分略 Main()
{
Student stu;
stu.num=10;
stu.show(); //给成员变量赋值,不报错
}
部分略 Main()
{
Student stu=new Student();
stu.num;
stu.show(); //new,不报错
}
3.装箱和拆箱
1)值类型 =============> 引用类型 (装箱)
反之 (拆箱)
2)要避免装箱和拆箱由于会减低程序性能。
4.值传递和引用传递
值传递:1 值类型(值不会改变) 2 引用类型(值会改变)
引用传递:3 ref 值类型(值会改变)4 ref 引用类型(值会改变)