GC,一个服务CLR的。有两个特点,前人的总结。但不是scott他们说的。我是这么翻译的:
1.当程序不再运行的时候,GC可以从内存中删除对象。
2.GC在原则上释放那些不得不释放的程序任务,比如释放你所要求的释放(dispose)的和造成内存溢出的程序。
实际上我认为在服务器上打上framwork2.0的补丁为前提下,你必修写上dispose.而且要是你参照一些个翻译错误的书来写,你吃的亏会很大。为什么?问题在于你所开发的系统上了2000流量,若是电子商务网站,弄不好将因为你的造成的事故而死去。一天损失上万。所以,服务器内存释放你必须考虑下。否则后果自负。自己写个类吧!
公司老大格言,.net 是个框,你要在已经打上桩的框中编写你自己的未来(实际vs并不美好)
"写" 请自己参考CLR
不用,因为在c#中,在我们操作问以后,程序会自动释放资源.当然,我们如果手动释放这是个好习惯.
如果cmd和conn要频繁的使用 倒不如声明为类中的全局变量 这样运行程序只需要初始化一次 释放一次
比如这样
class Form1
{
....
SqlConnection conn = ……;
SqlCommand cmd = ……;
void Function1()
{
cmd.xxx;
}
}
如果只是偶尔用一下 用过之后就Dispose掉比较节省资源
其实你可以把数据库访问相关函数写到一个类中,要访问时调用这个类的相关函数就可以了,不用每次都去写这些代码。C#会自动释放资源,这个不用太担心,他们的生存期到了,自然会回收,当然写上也没问题,资源不用就释放,我觉得应该这样,下次用下次再分配。但是你的OPEN和CLOSE等最好是要加上捕捉错误的代码,因为网络等原因,可能导致访问的失败。