fork download
  1. using System;
  2.  
  3. namespace Dispose_Throw
  4. {
  5. public class D : IDisposable
  6. {
  7. public D()
  8. {
  9. Console.WriteLine("D::Constructor");
  10. }
  11. public void Dispose()
  12. {
  13. Console.WriteLine("D::Dispose");
  14. }
  15. }
  16. public class C : IDisposable
  17. {
  18. private D m = new D();
  19. public void Dispose()
  20. {
  21. m.Dispose();
  22. }
  23. }
  24. public class B : IDisposable
  25. {
  26. private C m = new C();
  27. public void Dispose()
  28. {
  29. m.Dispose();
  30. }
  31. }
  32. public class A : IDisposable
  33. {
  34. private B m=new B();
  35. public void Dispose()
  36. {
  37. m.Dispose();
  38. }
  39. }
  40. class Program
  41. {
  42. static void Main(string[] args)
  43. {
  44. using (A t = new A())
  45. {
  46. }
  47. }
  48. }
  49. }
  50.  
Success #stdin #stdout 0.04s 36944KB
stdin
Standard input is empty
stdout
D::Constructor
D::Dispose