本章概要:
1.后台内存管理
值数据类型。引用数据类型。垃圾收集 ,释放未托管的资源(析构函数,IDISPOSABLE接口,实现该接口和析构函数)
不安全代码(unsafe),指针,使用指针优化性能
--------------------------------------------------------------------------------------------------------
分配内存方式:堆栈向上 堆向下
不希望指定他指向数据类型时候用VOID指针
结构指针:条件(结构不能包含任何引用类型)
类指针成员:不能创建任何指向类的指针,垃圾收集起不维护指针任何信息,只能维护所引用的信息,因此创建指向类的指针会使得垃圾收集器不能正常工作;但是由于大多数类都包含值类型的成员,可以为这些之类型成员城建指针,但是这需要一种特殊的语法(FIXED),X和f都是非托管资源,他们方在一个对象中存放在堆上,在垃圾收集的过程中,垃圾收集器会吧myclass移动到内存的一个新单元上,这样指针pl.pf就指向错误的内存地址,所以不能用这个方式(Myclass Myobject=new Myclass(); long *pl=&(myobject.x);pf=&(myobject.f);)只能通过FIXED告诉编垃圾收集器,类的实例的某些成员有指向他们的指针,在FIXED代码段内这些实例不能移动
例:
class
{
public long x;
public float f;
}
Myclass Myobject=new Myclass();
fixed(long *pObject=&(MyObject))
{
//do something here
}