Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: phương thức hủy trong C#

  1. #1
    Ngày gia nhập
    02 2013
    Bài viết
    0

    Mặc định phương thức hủy trong C#

    chào các bạn.
    Mình học C# chưa được lâu, mình đọc tới cách dùng các phương thức hủy, cơ chế thu dọn nhưng chăng hiểu gì.Bạn nào hiểu rõ có thể giải thích dùm mình cơ chế hoạt động cùng cách dùng của các phuơng thức Finalize(), Dispose(), close(), ~
    mình cám ơn nhiều

  2. #2
    Ngày gia nhập
    12 2011
    Nơi ở
    vùng kín
    Bài viết
    139

    theo mình:
    Dispose() là giải phóng bộ nhớ.
    close() là đóng mở phương thức nào đó ,ví dụ connection chẳng hạn
    Finalize() thì ko biết


  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    14

    Hj, khi bạn sử dụng 1 class (cổng Com, File, ADO,..) dự đoán khi sử dụng sẽ làm nặng chuơng trình thì:
    Mặc định cứ un release instance object đó:
    Hide() => Close() => Dispose()
    Không cần biết có cơ chế dọn rác sẵn, cứ việc làm như vậy cho bất cứ class nào cảm thấy nặng.

  4. #4
    Ngày gia nhập
    03 2009
    Bài viết
    206

    Trích dẫn Nguyên bản được gửi bởi lamanh278 Xem bài viết
    chào các bạn.
    Mình học C# chưa được lâu, mình đọc tới cách dùng các phương thức hủy, cơ chế thu dọn nhưng chăng hiểu gì.Bạn nào hiểu rõ có thể giải thích dùm mình cơ chế hoạt động cùng cách dùng của các phuơng thức Finalize(), Dispose(), close(), ~
    mình cám ơn nhiều
    Finalize thuộc hàm try{}catch{} để xử lý ngoại lệ trong c#. Phần Finalize nằm phía sau Catch. Cấu trúc như sau
    try{
    //Thực hiện đoạn xử lý nào đó
    }catch{

    // Nếu đoạn xử lý trong phần try lỗi thì sẽ nhảy vào phần xử lý này
    }
    Finalize
    {
    //Xử lý này sẽ được thực hiện cuối cùng sau khi đã thực hiện xử lý ở phần Try hoặc phần Catch
    }

  5. #5
    Ngày gia nhập
    02 2013
    Bài viết
    219

    Trích dẫn Nguyên bản được gửi bởi hvcuongit Xem bài viết
    Finalize thuộc hàm try{}catch{} để xử lý ngoại lệ trong c#. Phần Finalize nằm phía sau Catch...
    Bạn đã nhầm lẫn giữa finally với Finalize còn post ví dụ lên làm người khác nhầm lẫn nữa.

    Finalize theo mình biết sẽ tự động được gọi sau khi một đối tượng trở nên không thể truy xuất nữa, ví dụ như khi đối tượng bị dispose hoặc close, ngoài ra nó có thể được gọi bằng cách GC.SuppressFinalize. Bởi thế người ta thường dùng Finalize khi phải quản lý một đối tượng phải handle resource. Một ví dụ minh họa như sau :
    Visual C# Code:
    1. public class BetterDisposableClass : IDisposable {
    2.  
    3.   public void Dispose() {
    4.     CleanUpManagedResources();
    5.     CleanUpNativeResources();
    6.     GC.SuppressFinalize(this);
    7.   }
    8.  
    9.   protected virtual void CleanUpManagedResources() {
    10.     // ...
    11.   }
    12.   protected virtual void CleanUpNativeResources() {
    13.     // ...
    14.   }
    15.  
    16.   ~BetterDisposableClass() {
    17.     CleanUpNativeResources();
    18.   }
    19.  
    20. }

    Bạn có thể tham khảo thêm ở đây : http://codecrafter.blogspot.com/2010/01/better-idisposable-pattern.html
    Lúc nào cũng lãng đãng như người trên mây

    Những người mới : Hãy tìm hiểu luật lệ diễn đàn trước khi post bài !

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn