Словарь с помощью дженериков

Я в настоящее время пишу менеджер ресурсов для своей игры. Это - в основном класс, который обработает все виды других объектов различных типов, и каждый объект упомянут по имени (Система. Строка). Теперь это - моя текущая реализация, но так как я использую словарь объектов, я должен буду все еще бросить каждый объект. Существует ли способ использовать Дженерики в этом случае? Я не очень силен на тех, я пытался читать на них, и это только что закончило тем, что смутило меня больше.

public static class ResourceManager
{
    public static Dictionary<string, object> Resources { get; private set; }

    public static void LoadResources()
    {
        Resources = new Dictionary<string, object>();

        //Sample resource loading code
        Resources.Add("number", 3);
        Resources.Add("string", "bleh");

        Console.Log("Loaded " + Resources.Count + " resources.");
    }
}
5
задан Alex Turpin 15 February 2010 в 02:35
поделиться

2 ответа

Нужно ли иметь только один набор ресурсов, или вы можете иметь по одному для каждого типа ресурса?

public class ResourceMap<T> extends Dictionary<string, T> { }

public static class ResourceManager
{
    public static ResourceMap<Font> Fonts { get; private set; }
    public static ResourceMap<Image> Images { get; private set; }
    public static ResourceMap<Sound> Sounds { get; private set; }

    public static void LoadResources()
    {
        Fonts = new ResourceMap<Font>();
        Images = new ResourceMap<Image>();
        Sounds = new ResourceMap<Sound>();

        Fonts.Add("Helvetica", new Font("Helvetica", 12, FontStyle.Regular));
        Images.Add("Example", Image.FromFile("example.png"));
    }
}
2
ответ дан 15 December 2019 в 01:00
поделиться

Я полагаю, что у всех этих объектов есть по крайней мере несколько общих черт. Найдите общий язык и превратите его в интерфейс, который реализуют ваши объекты. Затем используйте Dictionary .

2
ответ дан 15 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: