巧记:值(无ref)+值=不乱
值(无ref)+引=变
引(有ref)+值/引=变
1.值类型和引用类型
1.引用类型
源于system.object家族。
(1)类
(2)接口:interface
(3)数组
(4)字符串:string:
2.值类型
源于system.valueType家族
值类型数据地址的内存区域为栈。
3.值类型:
(1)根基数据类型{int,long,double,byte~~~~}
(2)枚举:enum
(3)布局体:struct
2.布局体
1.界说:
访谒修饰符 struct 布局名
{
//布局体
}
(1)布局体可以有字段,要领,,字段不能赋初始值。
(2)可以不new,但有条件,布局体中有成员变量和成员要领,成员变量没有赋值,挪用成员要领,不new会报错,所以一般先new。
例如:
public struct Student { public int num; public void show() { //代码 } }
static void Main(string[] args) { Student stu; stu.num; stu.show(); } //没有给成员变量赋值,报错
static void Main(string[] args) { Student stu; stu.num=10; stu.show(); } //给成员变量赋值,不报错
static void Main(string[] args) { Student stu=new Student(); stu.num; stu.show(); } //new出来,不报错
3.装箱和拆箱
提示:尽量减少装箱和拆箱,因为他们会消耗措施的性能。
1.值类型 =============> 引用类型 (装箱)
引用类型 =============> 值类型 (拆箱)
2.要制止装箱和拆箱因为会减低措施性能。
4.引用方法参数通报
(根基数据类型,如,整形,浮点型,字符型,bool行及布局属于值类型;数组,接口和类属于引用类型)
使用值方法(不用ref修饰)通报值类型参数时,参数在要领中的改削不会保存
使用值方法(不用ref修饰)通报引用类型参数时,参数在要领中的改削会保存
使用引用方法(用ref修饰)通报值类型或引用类型参数时,参数在要领中的改削城市保存