深入C#数据类型
2021-07-17 06:19
1.值类型和引用类型
1)值类型:源于system.valueType家族
值类型数据所在的内存区域为栈。
2)引用类型源于system.object家族。
3)值类型:(1)基本数据类型{int,long,double,byte~~~~}
(2)枚举:enum
(3)结构体:struct
引用类型:(1)类
(2)接口:interface
(3)数组
(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 引用类型(值会改变)