>>>Now, let me give you a little brain teaser
>>>
>>>What is an elegant way to dispose an object IF it implements IDisposable.
>>> You do not know whether the object implements IDisposable
>>>
>>>
>>>public void SomeMethod(ISomeInterface theObject)
>>>{
>>> // do something with theObject
>>> // and if theObject implements IDisposable
>>> // dispose it
>>>}
Can't think of anything beyond the obvious:
if (theObject is IDisposable) ((IDisposable)theObject).Dispose();
>>//or
>>IDisposable d = theObject as IDisposable;
>>if (d != null) d.Dispose();
But presumably you've seen something else ? :-}
>
>
>Seen something else ? Yes
>
>It's the latter of the obvious, but the compiler does it for you
>
>
>public void SomeMethod(ISomeInterface theObject)
>{
> using (theObject as IDisposable)
> {
> // do something here
>
>
> } //dispose
>}
>
>pages 32-33
http://www.amazon.co.uk/More-Effective-Specific-Software-Development/dp/0321485890/ref=sr_1_1?ie=UTF8&s=books&qid=1295806114&sr=8-1>
>Also good to read
http://www.amazon.co.uk/Effective-covers-4-0-Specific-Development/dp/0321658701/ref=sr_1_3?ie=UTF8&s=books&qid=1295806114&sr=8-3#_Question:
I looked at the first book and ordered it then looked at the second one. I see this covers C#4 - but it's not clear whether it's a rehash of the first or whether it covers entirely different topics. Is it worth getting both ?
TIA