我估摸着内存分配+释放是个基础函数,有些人可能没注意此类函数或细究,但我觉得还是弄明白的好。介绍下面内存函数前,先说一下MM的一些过程,如不关心可忽略: 1 TMemoryManager = record 2 GetMem: function(Size: Integer): Pointer; 3.....
ADO.NET中的五个主要对象Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。Command:主要可以用来对数据库发出一些指令,例如可以对数...
分类:
Web程序 时间:
2015-09-28 16:07:51
阅读次数:
173
ADO.NET的五个主要对象 --》SqlConnection 主要是开启应用程序和数据库之间的连接, 用法: 首先使用sqlconnectiopn要对它释放资源,dispose/using,在使用sqlconnection之前必须要打开连接,调用它的Open()方法,这个open()方法里面呢创建...
分类:
Web程序 时间:
2015-09-10 19:11:07
阅读次数:
107
Login login= new Login(); login.ShowDialog(); if (login.DialogResult == DialogResult.OK) { Application.Run(new mian()); login.Dispose(); } else if (lo...
实现IDisposable的代码片段 1 ~DemoType() 2 { 3 this.Dispose(); 4 } 5 6 #region IDisposable Members 7 8 //...
分类:
其他好文 时间:
2015-08-19 01:54:20
阅读次数:
114
建议49:在Dispose模式中应提取一个受保护的虚方法在标准的Dispose模式中,真正的IDisposable接口的Dispose方法并没有做实际的清理工作,它其实是调用了下面的这个带bool参数且受保护的的虚方法: /// /// 非密封类修饰用protected...
建议51:具有可释放字段的类型或拥有本机资源的类型应该是可释放的在建议50中,我们将C#中的类型分为:普通类型和继承了IDisposable接口的非普通类型。非普通类型除了包含那些托管资源的类型外,本身还包含一个非普通类型的字段。在标准的Dispose模式中,我们对非普通类型举了一个例子:一个非普通...
建议50:在Dispose模式中应区别对待托管资源和非托管资源真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源。提供给调用者调用的显式释放资源的无参Dispose方法中,调用参数是true: public void D...
建议48:Dispose方法应允许被多次调用一个类型的Dispose方法应该允许被多次调用而不抛出异常。鉴于此,类型内部维护了一个私有的bool变量disposed,如下:private bool disposed = false;在实际清理代码的方法中,加入一下判断:if(disposed){ ....
建议47:即使提供了显式释放方法,也应该在终结器中提供隐式清理在标准的Dispose模式中,我们注意到一个以~开头的方法,如下: /// /// 必须,防止程序员忘记了显式调用Dispose方法 /// ~SampleClass() ...