Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- internal class SomeDisposableClass : IDisposable
- {
- private readonly System.IO.Stream _managedResource;
- private bool _disposed;
- public SomeDisposableClass(System.IO.Stream managedResource)
- {
- _managedResource = managedResource;
- }
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
- protected virtual void Dispose(bool disposing)
- {
- if(_disposed)
- {
- return;
- }
- if(disposing)
- {
- _managedResource?.Dispose();
- }
- _disposed = true;
- }
- }
- internal sealed class DerivedDisposableClass : SomeDisposableClass
- {
- private readonly System.IO.Stream _anotherResource;
- public DerivedDisposableClass(System.IO.Stream managedResource, System.IO.Stream anotherResource)
- : base(managedResource)
- {
- _anotherResource = anotherResource;
- }
- protected override void Dispose(bool disposing)
- {
- _anotherResource?.Dispose();
- base.Dispose(disposing);
- }
- }
Add Comment
Please, Sign In to add comment