Това е 100% правилният начин. Ако даден клас използва IDisposable той трябва да бъде обвит в using изявление, за да се гарантира, че Dispose() методът се извиква. Освен това, комуникацията с външна технология - при това неуправлявана - като SQL Server не трябва да се приема лекомислено. SqlCommand обектът реализира IDisposable по много добра причина. Кодът по-долу е Dispose() метод за SqlCommand обект:
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._cachedMetaData = null;
}
base.Dispose(disposing);
}
и както можете да видите, той пуска препратка към _cachedMetaData обект, за да може и той да бъде почистен.