Đâ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.