这是 using 的正确用法吗?
Is this the right usage of using?
我不确定如何正确使用 using 语句。
我这样试:
[HttpDelete("{ClubId}", Name = "DeleteOpenings_Club")]
public async Task<IActionResult> DeleteClub_IsOpening([FromRoute] string ClubId)
{
using (_db_ClubIsOpen)
{
var result = _db_ClubIsOpen.ClubIsOpen_TBL.Where(x => x.FK_Club == ClubId);
foreach (var item in result)
{
_db_ClubIsOpen.ClubIsOpen_TBL.Remove(item);
}
_db_ClubIsOpen.SaveChanges();
return Ok();
}
}
来自C# Reference:
Provides a convenient syntax that ensures the correct use of IDisposable objects. Beginning in C# 8.0, the using statement ensures the correct use of IAsyncDisposable objects.
string manyLines=@"This is line one
This is line two
Here is line three
The penultimate line is line four
This is the final, fifth line.";
using (var reader = new StringReader(manyLines))
{
string? item;
do {
item = reader.ReadLine();
Console.WriteLine(item);
} while(item != null);
}
using
语句允许您限制 IDisposable 对象的范围并简化它们的处理。通常,您会在 using
结构的语句中声明 IDisposable 对象并在正文中使用它。
using
与生命周期管理有关,这是一个复杂的问题。
通常,您在这里部署的 using
的用途是 您的方法拥有的东西 ;例如,这里:
using (var dbContext = new DbContext(whatever))
{
// some code
}
(或者在最近的 C# 版本中只是 using var dbContext = new DbContext(whatever);
)
在上面,我们显然正在创建东西,所以我们的工作是确保它得到处理,这多亏了 using
.
但是,在问题的示例中,不清楚 _db_ClubIsOpen
是什么,生命周期是什么,或者谁拥有它。默认情况下,我绝对不会假设一个方法负责取得任意字段的所有权,所以我不会期望使用using
在这里,在 using (_someField)
的意义上,如问题所示。相反,我希望 一些 DI/IoC 框架来处理它(如果它被注入),或者我希望该类型实现 IDipsosable
,并且处理在 Dispose()
.
中配置字段
我不确定如何正确使用 using 语句。
我这样试:
[HttpDelete("{ClubId}", Name = "DeleteOpenings_Club")]
public async Task<IActionResult> DeleteClub_IsOpening([FromRoute] string ClubId)
{
using (_db_ClubIsOpen)
{
var result = _db_ClubIsOpen.ClubIsOpen_TBL.Where(x => x.FK_Club == ClubId);
foreach (var item in result)
{
_db_ClubIsOpen.ClubIsOpen_TBL.Remove(item);
}
_db_ClubIsOpen.SaveChanges();
return Ok();
}
}
来自C# Reference:
Provides a convenient syntax that ensures the correct use of IDisposable objects. Beginning in C# 8.0, the using statement ensures the correct use of IAsyncDisposable objects.
string manyLines=@"This is line one This is line two Here is line three The penultimate line is line four This is the final, fifth line."; using (var reader = new StringReader(manyLines)) { string? item; do { item = reader.ReadLine(); Console.WriteLine(item); } while(item != null); }
using
语句允许您限制 IDisposable 对象的范围并简化它们的处理。通常,您会在 using
结构的语句中声明 IDisposable 对象并在正文中使用它。
using
与生命周期管理有关,这是一个复杂的问题。
通常,您在这里部署的 using
的用途是 您的方法拥有的东西 ;例如,这里:
using (var dbContext = new DbContext(whatever))
{
// some code
}
(或者在最近的 C# 版本中只是 using var dbContext = new DbContext(whatever);
)
在上面,我们显然正在创建东西,所以我们的工作是确保它得到处理,这多亏了 using
.
但是,在问题的示例中,不清楚 _db_ClubIsOpen
是什么,生命周期是什么,或者谁拥有它。默认情况下,我绝对不会假设一个方法负责取得任意字段的所有权,所以我不会期望使用using
在这里,在 using (_someField)
的意义上,如问题所示。相反,我希望 一些 DI/IoC 框架来处理它(如果它被注入),或者我希望该类型实现 IDipsosable
,并且处理在 Dispose()
.