Ví dụ:
- private void Demo()
- {
- using (Font font1 = new Font("Arial", 10.0f))
- {
- byte charset = font1.GdiCharSet;
- }
- //không thấy và sử dụng được biến font1 ở ngoài này
- }
Theo tài liệu MSDN thì đoạn code trên tương đương với:
- private void Demo()
- {
- Font font1 = new Font("Arial", 10.0f);
- try
- {
- byte charset = font1.GdiCharSet;
- }
- finally
- {
- if (font1 != null)
- ((IDisposable)font1).Dispose();
- }
- }
Khai báo 1 class implement từ interface IDisposable
- class TestDispose : IDisposable
- {
- public void Dispose()
- {
- Console.Write("Disposed! \n");
- }
- }
- // sử dụng using bình thường
- private static void Test1()
- {
- Console.WriteLine("Test1");
- using (TestDispose t = new TestDispose())
- {
- }
- }
- //return ra khỏi hàm trước khi ra khỏi using
- private static void Test2()
- {
- Console.WriteLine("Test2");
- using (TestDispose t = new TestDispose())
- {
- return;
- }
- }
- // gặp exception trong using
- private static void Test3()
- {
- Console.WriteLine("Test3");
- using (TestDispose t = new TestDispose())
- {
- throw new Exception("test");
- }
- }
- static void Main(string[] args)
- {
- Test1();
- Test2();
- try
- {
- // hàm này quăng exception nên cần try catch
- Test3();
- }
- catch
- { }
- Console.ReadLine();
- }
Không có nhận xét nào :
Đăng nhận xét