相关疑难解决方法(0)

我应该Dispose()DataSet和DataTable吗?

DataSet和DataTable都实现了IDisposable,因此,通过传统的最佳实践,我应该调用它们的Dispose()方法.

但是,从我到目前为止所读到的,DataSet和DataTable实际上并没有任何非托管资源,因此Dispose()实际上并没有做太多.

另外,我不能只使用,using(DataSet myDataSet...)因为DataSet有一组DataTables.

所以,为了安全起见,我需要遍历myDataSet.Tables,处理每个DataTable,然后处理DataSet.

那么,在我的所有DataSet和DataTables上调用Dispose()是否值得麻烦?

附录:

对于那些认为应该处理DataSet的人:通常,处理的模式是使用usingor try..finally,因为你想保证将调用Dispose().

然而,这对于一个集合来说真的很快.例如,如果对Dispose()的一个调用抛出异常,你会怎么做?你吞下它(这是"坏"),以便你可以继续处理下一个元素?

或者,你是否建议我只调用myDataSet.Dispose(),而忘记在myDataSet.Tables中处理DataTables?

datatable dispose idisposable using dataset

187
推荐指数
7
解决办法
10万
查看次数

在C#中,析构函数和类中的Finalize方法有什么区别?

在类中的析构函数和Finalize方法之间有什么区别?

我最近发现Visual Studio 2008认为析构函数与Finalize方法同义,这意味着Visual Studio不会让您同时在类中定义这两个方法.

例如,以下代码片段:

class TestFinalize
{
    ~TestFinalize()
    {
        Finalize();
    }

    public bool Finalize()
    {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

在析构函数中调用Finalize时出现以下错误:

以下方法或属性之间的调用不明确:'TestFinalize .~TestFinalize()'和'TestFinalize.Finalize()'

如果对Finalize的调用被注释掉,则会出现以下错误:

类型'ManagementConcepts.Service.TestFinalize'已经定义了一个名为'Finalize'的成员,它具有相同的参数类型

c# destructor finalize

91
推荐指数
3
解决办法
6万
查看次数

.NET中是否有字符串数学计算器?

如果我有一个带有有效数学表达式的字符串,例如:

String s = "1 + 2 * 7";
Run Code Online (Sandbox Code Playgroud)

在.NET中是否有内置的库/函数来解析和评估该表达式并返回结果?在这种情况下15.

.net c#

81
推荐指数
9
解决办法
6万
查看次数

标签 统计

c# ×2

.net ×1

dataset ×1

datatable ×1

destructor ×1

dispose ×1

finalize ×1

idisposable ×1

using ×1