Tôi muốn có một Singleton sẽ được tự động khởi tạo khi bắt đầu chương trình.Làm thế nào để: Tự động khởi tạo Singleton trong C#
Điều tôi ngụ ý bằng "tự động khởi tạo" là mã trong Singleton sẽ tự khởi động ngay khi bắt đầu chương trình mà không có bất kỳ cuộc gọi hoặc khai báo nào bằng mã khác.
Vì vậy, tôi muốn một cái gì đó như sau để nhanh chóng và viết ra "MySingleton instantiated" trên bắt đầu chương trình (không có mã chính làm bất cứ điều gì) ...
static class MySingleton
{
private static MySingleton self = new MySingleton();
protected MySingleton()
{
System.Console.WriteLine("MySingleton Instantiated");
}
}
trừ này không làm việc kể từ C# sẽ chỉ khởi tạo các thành viên tĩnh của một lớp khi cần, tức là khi chúng được truy cập/etc.
Vì vậy, tôi phải làm gì? điều này có thể được thực hiện?
Tôi đã không làm điều này cá nhân với C + + (đã không được sử dụng C + + trong một thời gian) nhưng tôi khá chắc chắn nó có thể được thực hiện trong C + + nhưng không chắc chắn về C#.
Mọi trợ giúp đều được đánh giá cao. Cảm ơn.
Những gì tôi đang thực sự muốn làm với điều này là ... Sẽ có rất nhiều các lớp singleton (và nhiều hơn nữa có thể được thêm vào như thời gian đi về), tất cả trong số đó sẽ kế thừa từ một chung (abstract) lớp cha (aka. PClass).
Các PClass sẽ có một thành viên tĩnh mà là một tập hợp các PClasses ... và một constructor để thêm chính nó vào bộ sưu tập ...
Sau đó, về mặt lý thuyết tất cả các độc thân sẽ Automagically được bổ sung vào bộ sưu tập (kể từ khi chúng được khởi tạo, hàm tạo PClass cơ sở được gọi và thêm đối tượng mới vào bộ sưu tập) ... thì bộ sưu tập có thể được sử dụng mà không biết bất kỳ điều gì về các lớp con (singleton) đã được triển khai và các lớp con mới (singleton) có thể được thêm vào bất kỳ lúc nào mà không phải thay đổi bất kỳ mã nào khác.
Thật không may là tôi không thể khiến trẻ em (người độc thân) tự khởi tạo bản thân ... làm hỏng kế hoạch nhỏ của tôi, dẫn đến bài đăng này.
Hy vọng tôi đã giải thích rõ điều đó.
PS. Có, tôi nhận ra có những cảm xúc xấu về Singletons và việc sử dụng chúng ... nhưng đôi khi chúng hữu ích, và ngay cả khi Satan tự làm Singletons tôi vẫn muốn biết liệu vấn đề của tôi có thể đạt được trong C# hay không. Cảm ơn tất cả các bạn.
Satan là Singleton. –