Я в настоящее время пишу менеджер ресурсов для своей игры. Это - в основном класс, который обработает все виды других объектов различных типов, и каждый объект упомянут по имени (Система. Строка). Теперь это - моя текущая реализация, но так как я использую словарь объектов, я должен буду все еще бросить каждый объект. Существует ли способ использовать Дженерики в этом случае? Я не очень силен на тех, я пытался читать на них, и это только что закончило тем, что смутило меня больше.
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.");
}
}
Нужно ли иметь только один набор ресурсов, или вы можете иметь по одному для каждого типа ресурса?
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"));
}
}
Я полагаю, что у всех этих объектов есть по крайней мере несколько общих черт. Найдите общий язык и превратите его в интерфейс, который реализуют ваши объекты. Затем используйте Dictionary
.