gpt4 book ai didi

C# 使用清除处置

转载 作者:行者123 更新时间:2023-11-30 20:19:01 25 4
gpt4 key购买 nike

我正在审查一些 C# 代码,我已经有一段时间没有使用 C# 了,所以我想确保我的直觉是正确的。在此代码中,我看到 using block 中的许多地方都完成了类似以下的操作:

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();
}

现在,我对此做了一些研究,并回顾了几年来我的内存力衰退,我认为有很多方法可以更好地做到这一点。我想知道哪种方法更“标准”/“最佳实践”。我认为下面的第 1 条是执行此操作的最佳方法。

提前致谢。

  1. 将 DataSet 添加到 using 语句,以便在 using 语句的范围结束时自动处理它,从而避免同时进行 clear 和 dispose。我会这样做:

    using(StreamWriter thing = new StreamWriter(), DataSet DS = new DataSet()) {

    DS = SQLQueryMethod()
    do stuff to DS{...}

    }
  2. 只需调用 DataSet DS 上的处置,因为我认为在处置之前清除它是没有用的。

  3. 其实还是有必要按原来的方式去做的。

最佳答案

多个“using语句”可以使用如下:

using (StreamWriter thing = new StreamWriter())
using (DataSet DS = new DataSet())
{
DS = SQLQueryMethod();
//do stuff ....
}

因为 StreamWriter 和 DataSet 在 IDisposable 接口(interface)中实现了所需的 Dispose() 方法,所以之后不需要显式调用它

关于C# 使用清除处置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39662862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com