Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. public class Foo : IDisposable
  2. {
  3. public void Dispose()
  4. {
  5. Console.WriteLine("Dispose called!");
  6. }
  7. }
  8.  
  9. using(var foo = new Foo())
  10. {
  11. // ... do stuff
  12. }
  13.  
  14. var foo = new Foo()
  15. try
  16. {
  17. // ... do stuff
  18. }
  19. finally
  20. {
  21. if (foo != null)
  22. ((IDisposable)foo).Dispose();
  23. }
  24.  
  25. Dispose called!
  26.  
  27. public class Foo : IDisposable
  28. {
  29. public void Dispose()
  30. {
  31. Console.WriteLine("Dispose called!");
  32. }
  33.  
  34. ~Foo()
  35. {
  36. Dispose();
  37. }
  38. }
  39.  
  40. public class Foo : IDisposable
  41. {
  42. public void Dispose()
  43. {
  44. RealDispose();
  45. GC.SuppressFinalize(this);
  46. }
  47.  
  48. protected void RealDispose()
  49. {
  50. Console.WriteLine("Dispose called!");
  51. // тут будет сама логика освобождения ресурса
  52. }
  53.  
  54. ~Foo()
  55. {
  56. RealDispose();
  57. }
  58. }
  59.  
  60. public class Foo : IDisposable
  61. {
  62. SqlConnection conn;
  63.  
  64. public Foo()
  65. {
  66. conn = new SqlConnection(....);
  67. }
  68.  
  69. public void Dispose()
  70. {
  71. conn?.Dispose();
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement