CS反射原理

C#为不同的类生成了type实例,type中记录每个类的描述数据,例如: 数据成员的名字、类型、偏移地址,函数的名字、类型、偏移地址。。。

于是我们可以通过type到的一个类拥有的所有信息。

1.C#对象的内存布局

类:是一种类型描述,描述了这个类型有哪些数据组成,同时描述一些成员函数;

类的实例: new 类() 是具体的内存对象,相当于一块内存,包含了其数据成员的集合

2.类的成员函数

类的成员函数属于代码指令,编译完成以后,会编程代码指令,全局只有一份,所有的类的实例共用一份代码指令,存入到我们的代码段。

Read More

关于Ref和Out

Reference

C#中out和ref之间的区别 - 陈斌彬的技术博客 (cnbin.github.io)

概述

在用法上,Out常常用来做多返回值,而Ref则是会改变当前参数的值。

在函数中Out的参数在返回函数前必须赋值,而Ref可以不用。

他们都于C++中的引用类型相似,传递的都是值的地址

区别

引用自:C#中out和ref之间的区别 - 陈斌彬的技术博客 (cnbin.github.io)

Read More