提问人:zaraboy 提问时间:2/10/2023 最后编辑:Tim Schmelterzaraboy 更新时间:2/10/2023 访问量:42
using 语句会关闭其中的所有类型的流吗?
Does using statement close all kinds of streams in it?
问:
我有声明要关闭,然后我正在与读者合作。
我想知道我是否必须在最后关闭阅读器,或者我可以依靠语句来关闭它。using
OleDbConnection
using
我有以下代码:
string connectionString = @"Some connection";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
string query = "SELECT ID, Name, \[Position\] FROM Players";
OleDbCommand command = new OleDbCommand(query, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine($"ID.{reader\[0\]} {reader\[1\],-18}{reader\[2\]}");
}
reader.Close();
}
答:
4赞
Tim Schmelter
2/10/2023
#1
根据经验:
将 -statement 用于实现 的所有内容。using
IDisposable
所以是的,将 also 用于 和 .using
OleDbDataReader
OleDbCommand
但你可以把所有的事情简化为:
using var connection = new OleDbConnection(@"Some connection");
using var command = new OleDbCommand("SELECT ID, Name, Position FROM Players", connection);
connection.Open();
using OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine($"ID.{reader[0]} {reader[1],-18}{reader[2]}");
}
评论
0赞
zaraboy
2/11/2023
Tim Schmelter,您使用的是哪种语言版本的 C#?因为这种“使用 var 连接”的构造不起作用?
0赞
Tim Schmelter
2/11/2023
@zaraboy 自 VS 2019 以来已经可用,只需使用 C#8
评论