Ter*_*y H 2 c# dispose using clear
我正在审查一些C#代码,因为我使用过C#已经有一段时间了,所以我想确保我的直觉是正确的.在这段代码中,我看到了一个使用块内的许多地方,其中包括以下内容:
using(StreamWriter thing = new StreamWriter()) {
DataSet DS = SQLQueryMethod();
do stuff to DS and log that stuff to the a log file using thingy...
DS.clear();
DS.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
现在,我已经对此做了一些研究,并且通过我失败的记忆回顾了几年,我认为有很多方法可以做得更好.我想知道哪种方式更"标准"/"最佳".我认为下面的第1号是最好的方法.
提前致谢.
将DataSet添加到using语句中,以便在using语句范围的末尾自动处理它,从而无需clear和dispose.我会这样做:
using(StreamWriter thing = new StreamWriter(), DataSet DS = new DataSet()) {
DS = SQLQueryMethod()
do stuff to DS{...}
}
Run Code Online (Sandbox Code Playgroud)只需在DataSet DS上调用dispose,因为我认为在处理之前清除它是没用的.
实际上有必要以原始方式进行.
多个"使用声明"可以使用如下:
using (StreamWriter thing = new StreamWriter())
using (DataSet DS = new DataSet())
{
DS = SQLQueryMethod();
//do stuff ....
}
Run Code Online (Sandbox Code Playgroud)
因为StreamWriter和DataSet在IDisposable接口中实现了所需的Dispose()方法,所以之后不需要显式调用它