c# - USING 语句的返回值

标签 c# .net return idisposable using

最初此方法仅在出现任何问题时返回 false,无论其类型如何。我想知道应用 using 语句是否会在异常时打破逻辑

以这种方式从 using 语句返回 true 值是否可以:

    try
    {

        Measurements.DeleteAllMeasurements(ID);
        string query = "DELETE FROM `Narz` WHERE `NAZk_1_ID`=@NAZ_ID";
        using(OleDbConnection strukturaConnection = new OleDbConnection(CommonConnectionString + DbPath + strStructureMdb))
            {
                using (OleDbCommand command = new OleDbCommand(query, strukturaConnection);)
                    {

                        command.Parameters.Add("@NAZ_ID", OleDbType.Numeric, 50);
                        command.Parameters["@NAZ_ID"].Value = ID;
                        command.ExecuteNonQuery();
                        return true; 
                    } 
            }
    }
    catch (Exception ex)
    {
        Logger.LogError(ex);
        return false;
    }

或者我应该以另一种方式返回false

最佳答案

所有 using 语句所做的就是在代码块末尾隐式调用实例的 IDisposable.Dispose() 实现。

除非您要返回一个引用并且 Dispose() 方法碰巧操纵它,否则这两个问题完全无关。

简而言之,从 using 语句中返回什么值并不重要。

编辑:关于您的方法“应该返回”的内容:我们没有足够的信息来了解这一点。我们甚至不知道方法的名称是什么。而且我们不知道该方法将被应用程序的哪些其他对象或方面使用。返回值应该对其调用者有意义,并有效地传达操作的结果。

关于c# - USING 语句的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10913094/

相关文章:

c# - list.First()、list.ElementAt(0) 和 list[0] 的区别?

c# - 谁能提供一个很好的 "idiot' s 指南”来在 VS2008 (C#) Pro 中创建安装程序?

c# - 如何向枚举添加扩展方法

.net - 将AU文件转换为MP3

PHP - 函数在 array_push 之后返回一个数组

c# - 如何在 C# 中创建 NVarchar(max) Sqlparameter?

.net - 64 位中的内存泄漏是否需要比 32 位更长的时间才能导致 OutOfMemoryException

c# - 在 C# 中使用析构函数?

java - C 在函数中修改值的最佳方式

php - 在php中返回数组