Является ли это правильным шаблоном, например, если у моего класса есть одноразовые члены, я должен явно называть Dipose()
?Если мой класс имеет член SqlConnection (или другой одноразовый), должен ли он реализовать IDisposable?
class MyClass : IDisposable
{
public MyClass()
{
conn = maybeCreateAConnection();
}
public void Dispose()
{
if(conn!=null)conn.Dispose();
}
private SqlConnection conn;
}
[Dispose Pattern] (https://msdn.microsoft.com/en-us/library/b1yfkh5e (v = vs.110) .aspx), сначала ** DO ** - "** DO ** реализовать Basic Dispose Pattern на типах, содержащих экземпляры одноразовых типов " –
Я бы бросил вызов, почему вам нужен _member_ для подключения - необходимо быстро создавать, использовать и удалять соединения. Существует редко убедительная причина иметь живое соединение в течение всего класса. –
@Damien_The_Unbeliever Кажется, kludgy, больше похоже на C++, чтобы помнить, какие поля одноразовые! –