Что ж, в вашем случае нет особого смысла в реализации IDisposable, поскольку вы можете вручную распоряжаться своими ресурсами.
Обычное использование IDisposable - это когда вы открываете интерфейс, который обрабатывает подключения к данным, и вы хотитевсе производные классы, чтобы избавиться, когда они сделаны.
Рассмотрим это:
public interface IDataCtx
{
void CallDB();
}
public class MyDataCtx : IDataCtx
{
private SqlConnection dc;
public MyDataCtx() { dc = new SqlConnection(); dc.Open(); }
public void CallDB();
{
dc.Something();
}
}
Позволяет вам сделать что-то вроде этого:
IDataCtx ctx = new MyDataCtx();
ctx.CallDB();
Но подождите, чтооб этом открытом соединении?Э-э-э!
Если вы сделали IDataCtx : IDisposable
(и внедрили код в свой производный ctx), вы можете сделать это:
IDataCtx ctx;
using (ctx = new MyDataCtx())
{
ctx.CallDB();
}
Гарантируя, что независимо от используемой вами реализации IDataCtx, онавсегда будет утилизироваться (даже в случае исключения).
Вот так я все равно его использую.(плюс это просто хорошая практика).