一、引用类型:
1.我们自定义的class
2.Array
Person[] person = new Person[2];
person[0] = new Person();
person[1] = new Person();
public class Person
{
public int age { get;set;}
}
3.Delegate
4.String:
在C中是没有stringde ,做法是用char[]来实现
....
二、引用类型和值类型的区别:
1.值类型存放在栈上面,默认空间大小是1M
2.引用类型存放在堆上面,无默认空间大小,大小受及其内存大小限制(无限大)
因此:栈是高效的
设计思想上:
动态大小的东西一般放在堆上
固定大小的东西一般放在栈上
三、类型转换
1.隐式转换
2.强制类型转换
值类型:=>隐式转换,小=>大(byte->short,short->int,int->long,float->double)
=>强制类型转换,大=>小:(1)强制转换符:=>xxx(short)int1,注:此种情况由于类型范围 的问题,可能导致溢出。如int转为byte
(2) Convert.Toxxx()=> 有风险防范机制,如果值溢出,抛出异常。否则执行转换
引用类型:【万事万物皆对象】
基类、父类、子类
=>隐式转换:子类转换为父类
=>强制转换:animal(父) bird(子) Animal animal1=new Animal(); Bird bird1=(Bird) animal1;
严重性:严重
代码:CS0266
说明:无法将类型(父类)隐式转换为子类。村咋一个显式转换。
文件
行