
巧记:值(无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.装箱和拆箱
提示:尽量减少装箱和拆箱,因为他们会消耗程序的性能。

