摘要: 创建对象的时候会调用构造函数初始化实例信息,当然析构函数就是释放对象时做的一些释放操作。为什么需要析构函数,普遍来说,因为我们的对象中可能用到了一些非托管的代码,譬如数据库操作,网络,本地文件等等,这些资源不是托管的,所以需要我们的托管对象在销毁时同事释放那些之前使用到的非托管对象,否则一直未关闭,释放,就可能导致泄漏。如果你的对象中根本没用到这些非托管资源,那么请不要定义析构函数,毕竟有代价的。1、析构函数被编译后,实际变成了Finalize()方法,所以实际上C#中也不允许你自己定义一个Finalize方法2、.NET中的托管对象回收,都是通过垃圾回收机制来实现的,不用我们手动就释放。当C 阅读全文
posted @ 2013-11-24 15:13 自由小菜园 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 委托时一种特殊的类型,它用来保存方法的地址,这样我们很方便的调用方法,像变量一样传递,回调。C++中的函数指针也是保存方法的地址,但是有一点不一样的是定义委托的时候就知道了它里面可以保存什么样的方法,而函数指针就没有这些所以委托相对更明确一点,更安全一点。public delegate void MyDelegate(int x) //这样的委托类型表示,该委托可以用来保存无返回值,切参数为int类型的方法当然当我们写出上面那段代码的时候,实际上编译器做了其他一些事,实际可能定义像下面这样的public class MyDelegate:system.MusticastDelegate{ .. 阅读全文
posted @ 2013-11-24 14:25 自由小菜园 阅读(2084) 评论(0) 推荐(0) 编辑