Vb.net 对于共享(静态)类来说,这是一个很好的候选者吗?

Vb.net 对于共享(静态)类来说,这是一个很好的候选者吗?,vb.net,class,oop,static,Vb.net,Class,Oop,Static,我正在创建一个缓存类,其中包含字典的公共实例。该类服务于整个应用程序,只能有一个全局实例,其生存期与应用程序本身相同 这个用例是共享(静态)类的好候选吗?我知道在这个问题上存在主观意见,但如果可能的话,我希望有客观的赞成/反对意见。是的,但是: 我决不会公开这些词典。将它们隐藏在方法后面,以便控制访问。如果应用程序是多线程的,则需要同步访问,或使用ConcurrentDictionary。字典本身不是线程安全的 如果您打算将其用于缓存,请记住.NET中已经有用于缓存的选项。也许您的类应该封装其中

我正在创建一个缓存类,其中包含
字典
的公共实例。该类服务于整个应用程序,只能有一个全局实例,其生存期与应用程序本身相同

这个用例是共享(静态)类的好候选吗?我知道在这个问题上存在主观意见,但如果可能的话,我希望有客观的赞成/反对意见。

是的,但是:

我决不会公开这些词典。将它们隐藏在方法后面,以便控制访问。如果应用程序是多线程的,则需要同步访问,或使用ConcurrentDictionary。字典本身不是线程安全的

如果您打算将其用于缓存,请记住.NET中已经有用于缓存的选项。也许您的类应该封装其中的一个

在web环境中:
在非网络环境下:也许回答得不错。我已经按照你的建议包装了字典对象。谢天谢地,不需要多线程。您提到的.NET缓存类看起来很棒。但是MemoryCache只在.NET4之后才可用,我仍然以3.5版为目标。