【问题标题】:C# consecutive using-statementsC# 连续使用语句
【发布时间】:2016-05-27 09:57:21
【问题描述】:

我的项目中有几个组合框。他们的内容正在发生很大变化。所以我把他们的内容放在我的数据库中。现在,我编写了如下代码来检索他们的数据,但我想知道,这种“使用”是像我的方法一样工作还是根本不重要?我的主要问题是;这是使用此类对象的健康方式吗?

DataTable results;
using (results = myDataInteractionClass.SelectDB())
{
    // fill table objects to combobox
}

using (results = myDataInteractionClass.SelectAnotherDB())
{
    // fill this new table's objects to combobox
}

using (results = myDataInteractionClass.SelectThirdDB())
{
    // so goes on like this.
}

【问题讨论】:

    标签: c# .net using-statement


    【解决方案1】:

    是的,这很好。您应该始终尽可能地缩小范围,因此这里有三个 usings 是好的(而不是整个块周围有一个 using)。

    不过有一个建议:为了防止在using 之间或之后滥用dataTable,我建议在using 内创建变量:

    using (/*so here*/ DataTable results = myDataInteractionClass.SelectDB())
    {
        // fill table objects to combobox
    }
    

    【讨论】:

    • 感谢您的回答和建议。我预先定义了数据表,因为我认为“也许如果我一开始使用一个数据表定义,我可以利用设备的堆栈 RAM 区域和性能。”。在这种情况下,不是说必要和可读性更重要吗?
    【解决方案2】:

    我猜你的唯一目标是从表中读取值并将它们填充到组合框中,考虑使用 DataTable 的 DataReader Insted,它与 DataTable 相比是轻量级的。是的,帕特里克的建议是合适的。我通常将 var 与 using 语句一起使用。

    【讨论】:

    • 哦,好的。从业绩而不是我的方法中获利更有意义。谢谢。
    • @mimozz 通常,如果一个答案解决了您的问题或提供了有用的信息,您会投票以感谢您的努力。
    猜你喜欢
    • 2023-03-21
    • 2018-10-17
    • 2018-11-25
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多