随笔分类 - C#相关
摘要:在C#中,委托类型是一个类型安全的、面向对象的函数指针。当我们通过delegate关键字定义一个委托类型后,编译器会给委托类型生成三个方法:Invoke、BeginInvoke和EndInvoke。例如对于下面委托类型,可以通过ILSpy查看编译器生成的三个方法。private delegate i...
阅读全文
摘要:前面一篇文章介绍了垃圾回收的基本工作原理,垃圾回收器并不是可以管理内存中的所有资源。对于所有的托管资源都将有.NET垃圾回收机制来释放,但是,对于一些非托管资源,我们就需要自己编写代码来清理这类资源了。其实在C#开发中,大部分资源都可以通过.NET垃圾回收机制进行回收,只用当我们使用非托管资源(原始...
阅读全文
摘要:在开发.NET程序过程中,由于CLR中的垃圾回收(garbage collection)机制会管理已分配的对象,所以程序员就可以不用关注对象什么时候释放内存空间了。但是,了解垃圾回收机制还是很有必要的,下面我们就看看.NET垃圾回收机制的相关内容。创建对象在C#中,我们可以通过new关键字创建一个引...
阅读全文
摘要:.NET编译器的任务之一就是为所有定义和引用的类型生成元数据描述。除了程序集中标准的元数据外,.NET平台还支持特定(attribute)把更多的元数据嵌入到程序集中。.NET特性扩展了抽象的System.Attribute基类,.NET中有很多预定义的特性,例如:[DllImport]、[Obso...
阅读全文
摘要:使用元数据完整地描述类型(类、接口、结构、枚举和委托)的能力是.NET平台的一个关键要素,像对象序列化、WCF等技术都需要在运行时通过元数据来发现类型格式。通过ildasm.exe这个工具,我们可以查看一个程序集的元数据(Ctrl+M组合键)。在.NET中,利用反射(reflection)服务,我们...
阅读全文