Đây là cách chính xác 100%. Nếu một lớp tận dụng IDisposable
nó phải được bọc trong một using
để đảm bảo rằng Dispose()
phương thức được gọi. Hơn nữa, không nên coi nhẹ việc giao tiếp với một công nghệ bên ngoài - được quản lý tại SQL Server giống như vậy. SqlCommand
đối tượng triển khai IDisposable
vì một lý do rất chính đáng. Đoạn mã dưới đây là Dispose()
phương thức cho SqlCommand
đối tượng:
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
và như bạn có thể thấy, nó đang phát hành một tham chiếu đến _cachedMetaData
để nó cũng có thể được dọn dẹp.