值类型:在栈上复制真实值(stack),主要包括数据类型(int,float,double和枚举等)
值类型源于:system.valuetype
所有类型的引用类型的引用存在在栈中。
引用类型:堆上存储的真实对象本身真实对象属性(heap),主要包括(类,接口,数组)
值类型源于:system.object
方法与要素:
public void say(){
}
(1)返回值
(2)访问修饰符
(3)方法名
(4)方法体
(5)方法的参数
结构的定义:
访问修饰符 struct 结构名{
//结构体
}
//结构中可以有字段,也可以有方法
//定义时,结构中的字段不能被赋值
装箱和拆箱
将值类型转换为引用类型过程称为装箱,反之称为拆箱
//应该尽量减少不必要的装箱和拆箱,性能损失较大。
值参数传递:
引用参数传递:
(基本数据类型,如,整形,浮点型,字符型,bool行及结构属于值类型;数组,接口和类属于引用类型)
使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留
使用值方式(不用ref修饰)传递引用类型参数时,参数在方法中的修改会保留
使用引用方式(用ref修饰)传递值类型或引用类型参数时,参数在方法中的修改都会保留