내용 보기
작성자
관리자 (IP : 172.17.0.1)
날짜
2020-09-25 00:27
제목
[C#] .NET IDisposable 처리 정리
.NET IDisposable 처리 정리
01: public class Base : IDisposable 02: { 03: protected bool _disposed = false; 04: 05: protected virtual void Dispose(bool disposing) 06: { 07: if (_disposed == false) 08: { 09: if (disposing == true) 10: { 11: // 이 영역 안에서 Managed 자원을 해제 12: } 13: 14: // 이 영역 안에서 Unmanaged 자원을 해제 15: 16: _disposed = true; 17: } 18: } 19: 20: public void Dispose() 21: { 22: Dispose(true); 23: GC.SuppressFinalize(this); 24: } 25: 26: ~Base() 27: { // [2006-10-06 내용 추가] #if DEBUG if (false == _disposed) { throw new ApplicationException("Base.Dispose() was not called!"); } #endif 28: Dispose(false); 29: } 30: }
01: public class Derived : Base 02: { 03: protected override void Dispose(bool disposing) 04: { 05: if (_disposed == false) 06: { 07: if (disposing == true) 08: { 09: // 이 영역 안에서 Managed 자원을 해제 10: } 11: 12: // 이 영역 안에서 Unmanaged 자원을 해제 13: } 14: 15: base.Dispose(disposing); 16: } 17: } |
출처1
https://www.sysnet.pe.kr/2/0/347
출처2