Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Foo : IDisposable
- {
- public void Dispose()
- {
- Console.WriteLine("Dispose called!");
- }
- }
- using(var foo = new Foo())
- {
- // ... do stuff
- }
- var foo = new Foo()
- try
- {
- // ... do stuff
- }
- finally
- {
- if (foo != null)
- ((IDisposable)foo).Dispose();
- }
- Dispose called!
- public class Foo : IDisposable
- {
- public void Dispose()
- {
- Console.WriteLine("Dispose called!");
- }
- ~Foo()
- {
- Dispose();
- }
- }
- public class Foo : IDisposable
- {
- public void Dispose()
- {
- RealDispose();
- GC.SuppressFinalize(this);
- }
- protected void RealDispose()
- {
- Console.WriteLine("Dispose called!");
- // тут будет сама логика освобождения ресурса
- }
- ~Foo()
- {
- RealDispose();
- }
- }
- public class Foo : IDisposable
- {
- SqlConnection conn;
- public Foo()
- {
- conn = new SqlConnection(....);
- }
- public void Dispose()
- {
- conn?.Dispose();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement