一个带有BitmapImages字典的单例类的例子

本文关键字:字典 单例类 BitmapImages 一个 | 更新日期: 2023-09-27 18:18:59

我知道这是一个简单的问题,但我找不到一个例子。就当这是在帮一个新手吧。我需要创建一个单例类,这样我就可以跨多个文件访问BitmapImages字典。

字典是:

ConcurrentDictionary<string, BitmapImage> PlantImageDictionary;

有人可以张贴如何创建/实例化这个例子吗?有没有人能举个例子说明这样的字典应该怎么叫?

一个带有BitmapImages字典的单例类的例子

如果您只是从字典中读取,则不需要ConcurrentDictionary。事实上,我根本不建议暴露Dictionary。相反,我将公开您需要的最少数量的方法。如果你想要的只是按键查找的功能,那么就提供这个方法。

这是一个非常简单的单例,它会做你所要求的。

public sealed class ImageCache
{
    private static readonly Dictionary<string, Bitmap> Images;
    static ImageCache()
    {
        Images = new Dictionary<string, Bitmap>();
        // load XML file here and add images to dictionary
        // You'll want to get the name of the file from an application setting.
    }
    public static bool TryGetImage(string key, out Bitmap bmp)
    {
        return Images.TryGetValue(key, out bmp);
    }
}

您可能应该花一些时间研究单例模式并寻找替代方案。尽管上述方法可以完成工作,但它不是最佳实践。例如,一个明显的问题是,它需要外界了解XML文件的位置,这使得它在某种程度上难以适应测试框架。有更好的选择,但这应该让您开始。