Having read the threads Is SqlCommand.Dispose enough? and Closing and Disposing a WCF Service I am wondering for classes such as SqlConnection or one of the several classes inheriting from the Stream class does it matter if I close Dispose rather than Close?
According to Microsoft guidelines, it's a good practice to provide Close
method where suitable. Here is a citation from Framework design guidelines
Consider providing method
Close()
, in addition to theDispose()
, if close is standard terminology in the area. When doing so, it is important that you make theClose
implementation identical toDispose
...
In most of cases Close
and Dispose
methods are equivalent. The main difference between Close
and Dispose
in the case of SqlConnectionObject
is:
An application can call
Close
more than one time. No exception is generated.If you called
Dispose
methodSqlConnection
object state will be reset. If you try to call any method on disposedSqlConnection
object, you will receive exception.
That said:
Dispose
.Close
method.