Click here to Skip to main content
16,016,580 members
Home / Discussions / C#
   

C#

 
QuestionValid Reason for Using IDisposable intreface Pin
Lijo Rajan5-Jan-10 22:58
Lijo Rajan5-Jan-10 22:58 
AnswerRe: Valid Reason for Using IDisposable intreface Pin
dojohansen5-Jan-10 23:27
dojohansen5-Jan-10 23:27 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Lijo Rajan5-Jan-10 23:38
Lijo Rajan5-Jan-10 23:38 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Saksida Bojan6-Jan-10 0:25
Saksida Bojan6-Jan-10 0:25 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Lijo Rajan6-Jan-10 0:36
Lijo Rajan6-Jan-10 0:36 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Saksida Bojan6-Jan-10 0:49
Saksida Bojan6-Jan-10 0:49 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
dojohansen7-Jan-10 1:38
dojohansen7-Jan-10 1:38 
AnswerRe: Valid Reason for Using IDisposable intreface Pin
Pete O'Hanlon6-Jan-10 2:54
mvePete O'Hanlon6-Jan-10 2:54 
If you did not implement from IDisposable, you wouldn't be able to use the using construct to automatically dispose your object - you'd have to take care of it yourself. Effectively, the using construct turns the code into a try/finally block where Dispose is called in the finally portion - it uses a cast to IDisposable to ensure that it can do this. Consider the following sample:
public class MyBaseClass
{
  // Some stuff in here.
  public virtual void Dispose()
  {}
}
public class MyDisposableBaseClass : MyBaseClass, IDisposable
{
  // No need to implement the Dispose method here because this
  // class derives from a class that already has a Dispose, method
  // even though that class doesn't implement IDisposable.
}
// some code, which then gets called as:
using (MyBaseClass myClass = new MyDisposableBaseClass())
{
  // There's a problem, and this won't compile because MyBaseClass does not
  // implement IDisposable.
}
// Change the code to
using (MyDisposableBaseClass myClass = new MyDisposableBaseClass())
{
  // The code gets disposed automatically.
}
As you can see, even though MyBaseClass has a Dispose method, you can't use it in a using block for disposal.

"WPF has many lovers. It's a veritable porn star!" - Josh Smith

As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.


My blog | My articles | MoXAML PowerToys | Onyx



AnswerRe: Valid Reason for Using IDisposable intreface Pin
Gideon Engelberth6-Jan-10 6:33
Gideon Engelberth6-Jan-10 6:33 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Martin#6-Jan-10 21:29
Martin#6-Jan-10 21:29 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
dojohansen7-Jan-10 1:42
dojohansen7-Jan-10 1:42 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Martin#7-Jan-10 2:40
Martin#7-Jan-10 2:40 
GeneralRe: Valid Reason for Using IDisposable intreface Pin
Gideon Engelberth7-Jan-10 14:54
Gideon Engelberth7-Jan-10 14:54 
Questionget char without enter (console) Pin
sadas232341s5-Jan-10 22:24
sadas232341s5-Jan-10 22:24 
AnswerRe: get char without enter (console) Pin
Hristo-Bojilov5-Jan-10 22:37
Hristo-Bojilov5-Jan-10 22:37 
QuestionC# and Resource File Pin
jojoba20105-Jan-10 22:07
jojoba20105-Jan-10 22:07 
AnswerRe: C# and Resource File Pin
SeMartens5-Jan-10 22:38
SeMartens5-Jan-10 22:38 
QuestionRe: C# and Resource File Pin
jojoba20105-Jan-10 23:05
jojoba20105-Jan-10 23:05 
AnswerRe: C# and Resource File Pin
SeMartens5-Jan-10 23:21
SeMartens5-Jan-10 23:21 
GeneralRe: C# and Resource File Pin
jojoba20106-Jan-10 0:01
jojoba20106-Jan-10 0:01 
AnswerRe: C# and Resource File Pin
carlecomm6-Jan-10 18:16
carlecomm6-Jan-10 18:16 
QuestionDraw a line avoiding objects Pin
Zaegra5-Jan-10 21:45
Zaegra5-Jan-10 21:45 
GeneralRe: Draw a line avoiding objects Pin
Skippums6-Jan-10 7:58
Skippums6-Jan-10 7:58 
Questiondatatable filter Pin
abcurl5-Jan-10 21:38
abcurl5-Jan-10 21:38 
AnswerRe: datatable filter Pin
Greg Chelstowski5-Jan-10 23:26
Greg Chelstowski5-Jan-10 23:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.