Guest User

Untitled

a guest
Oct 17th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. internal class SomeDisposableClass : IDisposable
  2. {
  3. private readonly System.IO.Stream _managedResource;
  4.  
  5. private bool _disposed;
  6.  
  7. public SomeDisposableClass(System.IO.Stream managedResource)
  8. {
  9. _managedResource = managedResource;
  10. }
  11.  
  12. public void Dispose()
  13. {
  14. Dispose(true);
  15. GC.SuppressFinalize(this);
  16. }
  17.  
  18. protected virtual void Dispose(bool disposing)
  19. {
  20. if(_disposed)
  21. {
  22. return;
  23. }
  24.  
  25. if(disposing)
  26. {
  27. _managedResource?.Dispose();
  28. }
  29.  
  30. _disposed = true;
  31. }
  32. }
  33.  
  34. internal sealed class DerivedDisposableClass : SomeDisposableClass
  35. {
  36. private readonly System.IO.Stream _anotherResource;
  37.  
  38. public DerivedDisposableClass(System.IO.Stream managedResource, System.IO.Stream anotherResource)
  39. : base(managedResource)
  40. {
  41. _anotherResource = anotherResource;
  42. }
  43.  
  44. protected override void Dispose(bool disposing)
  45. {
  46. _anotherResource?.Dispose();
  47.  
  48. base.Dispose(disposing);
  49. }
  50. }
Add Comment
Please, Sign In to add comment