如何在using语句之外使用变量?

时间:2015-12-22 11:21:34

标签: c# list variables scope using

如何在using语句之外使用变量?

我有这段代码:

using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString))
{
    var size = FileBusinessLogic.LoadBatchAvgFileSizes(connection);  // size is a list
}

我需要在使用之外使用“var size”,但我不知道如何使用。我怎样才能获得列表的第二列(大小)?

有人有个主意吗?

4 个答案:

答案 0 :(得分:4)

大括号构成了自己的范围。所有变量仅在声明的范围和内部范围内可见。

您只需要使用范围声明您的变量:

int size = 0; // or declare expected type
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString))
{
    size = FileBusinessLogic.LoadBatchAvgFileSizes(connection); // size is a list
}

// now you have access to your variable outside the using scope.

答案 1 :(得分:0)

你将能够以这种方式使用它,

PHP

答案 2 :(得分:0)

您可以使用操作

    Action<List<int>> handleSize = size =>
    {
        // you can do what you wanna do with size here.
        Console.WriteLine(size);
    };

    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString))
    {
        var size = FileBusinessLogic.LoadBatchAvgFileSizes(connection);  // size is a list
        handleSize(size);
    }

答案 3 :(得分:0)

使其成为一种方法:

private static List<int> GetSize()
{
    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString))
    {
        return FileBusinessLogic.LoadBatchAvgFileSizes(connection);  // size is a list
    }
}

...

var size = GetSize();