如何在using语句之外使用变量
本文关键字:变量 语句 using | 更新日期: 2023-09-27 18:27:47
如何在using语句之外使用变量?
我有这个代码:
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString))
{
var size = FileBusinessLogic.LoadBatchAvgFileSizes(connection); // size is a list
}
我需要在使用之外使用"var大小",但我不知道如何使用。如何获取列表的第二列(大小)?
有人有主意吗?
大括号组成了自己的范围。所有变量仅在声明的作用域和内部作用域中可见。
您只需要在作用域之外声明您的变量:
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.
将其作为一种方法:
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();
您将能够以这种方式使用它,
var size = new List<t>() ;
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString))
{
size = FileBusinessLogic.LoadBatchAvgFileSizes(connection);
}
您可以使用一个操作,
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);
}
在C# 8.0
中,您可以使用using声明,然后不需要将变量声明移出作用域。
using SqlConnection connection =
new SqlConnection(ConfigurationManager.ConnectionStrings["batch"].ConnectionString)
var size = FileBusinessLogic.LoadBatchAvgFileSizes(connection); // size is a list
// size can be used here...