Tôi có một lớp học với các thành viên tĩnh mở rộng, một số trong đó giữ tham chiếu đến các đối tượng được quản lý và không được quản lý. Ví dụ:Làm thế nào và khi nào các thành viên C# tĩnh bị xử lý?
Ví dụ: hàm tạo tĩnh được gọi ngay khi Loại được tham chiếu, điều này khiến lớp của tôi quay lên mộtQuy tích nhiệm vụ. Điều này xảy ra khi một trong các phương thức tĩnh được gọi, ví dụ.
Tôi đã triển khai IDisposable, cung cấp cho tôi các phương pháp xử lý việc xử lý trên bất kỳ đối tượng thể hiện nào mà tôi đã tạo. Tuy nhiên, những phương thức này không bao giờ được gọi nếu người tiêu dùng không tạo ra bất kỳ đối tượng thể hiện nào từ lớp của tôi.
Tôi nên đặt mã để xử lý các tham chiếu được duy trì bởi phần tĩnh của lớp học ở đâu và ở đâu? Tôi luôn nghĩ rằng việc loại bỏ các tài nguyên tham chiếu tĩnh xảy ra khi đối tượng dụ cuối cùng được giải phóng; đây là lần đầu tiên tôi tạo ra một lớp mà không có trường hợp nào có thể được tạo ra.
mục tĩnh có sẵn cho toàn bộ thực thi của ứng dụng. Bạn không tạo các mục tĩnh bằng cách sử dụng từ khóa MỚI, vì vậy điều này có nghĩa là bạn không có nhiều phiên bản của bất kỳ điều gì, bởi vì bạn thực sự không khởi tạo bất kỳ điều gì. Về các đối tượng được quản lý, đừng lo lắng về chúng, GC sẽ chăm sóc chúng. Giới thiệu về các tài nguyên không được quản lý cố gắng sử dụng chúng trong một lớp không tĩnh hoặc chúng sẽ được giữ cho đến khi bạn đóng ứng dụng của mình. Các mục tĩnh không hỗ trợ vứt bỏ. – alexandrudicu
Cảm ơn. Có vẻ như tôi cần xem xét lại thiết kế của mình ở đây. – Joe