c# - 是否可以在 finally block 中处理数据集然后返回数据集?

标签 c# dataset dispose try-catch-finally

所以我接手了一个现有的项目,之前的编码员做了很多有趣的事情。

我看到最多但不太理解的是下面的代码块

finally
{
   if (conn != null)
   {
       conn.Close();
       ds.Dispose();
   }
}
return ds;

VS2010 没有提示,项目按预期工作,但这对我来说很奇怪。

如何处理然后返回?除非最终以某种方式返回后发生?!

如果有人可以解释为什么这是合法的?或任何其他解释,我们将不胜感激。

最佳答案

在从 method 返回之前处理 ds 是不正确的,因为您将丢失数据集中的信息。 在 finally block 中处理连接似乎完全没问题,但不是数据集 ds 必须返回给调用方法。

关于c# - 是否可以在 finally block 中处理数据集然后返回数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308788/

相关文章:

c# - 适用于 Windows Phone 8.1 的 ADAL 问题

C#Blazor : Countdown Timer

xml - DataSet.WriteToXml 中缺少根命名空间

c# - 如何从 C# 中的数据集中获取日期?

c# - 从绑定(bind)到数据集的组合框中删除重复项

java - Java 可以重用未处置的系统 GUI 资源吗?

c# - 如何使用CreateExternalTexture和从C++库传递的指针创建Texture2D?

c# - Blazor 依赖注入(inject)与简单类

c# - 我需要在 ManualResetEvent 上调用 Close() 吗?

c# - 如何处理调用了异步方法的对象?