Для разработки игр я защищаю «Делать самое простое, что могло бы сработать». Это включает использование глобальных переменных (public static
в C #), если это простое решение. Вы всегда можете превратить это во что-то более формальное позже. Инструмент «найти все ссылки» в Visual Studio делает это действительно простым.
При этом, , очень мало случаев, когда глобальная переменная на самом деле является "правильным" способом что-то сделать. Поэтому, если вы собираетесь его использовать, вы должны знать о и понимать правильное решение. Таким образом, вы можете найти лучший компромисс между «ленивостью» и «написанием хорошего кода».
Если вы собираетесь создать что-то глобальное, вам нужно полностью понять почему вы это делаете.
В данном конкретном случае это звучит так, будто вы пытаетесь понять содержание. Вы должны знать, что ContentManager
автоматически возвратит один и тот же объект содержимого, если вы запросите его несколько раз. Поэтому вместо загрузки моделей в глобальный список рассмотрите возможность сделать доступным встроенный класс Game
ContentManager
через свойство public static
вашего класса Game
.
Или, что еще лучше, есть метод, который я предпочитаю, который мне кажется немного лучше: Я объясняю это в ответе на другой вопрос . В основном вы делаете ссылки на содержимое <i><b>private</b></i> static
в классах, которые их используют, и передаете ConentManager
в функции public static LoadContent
. Это разделяет использование статических функций на отдельные классы, а не глобальные, к которым обращаются со всей вашей программы (что потом будет трудно вытащить). Он также правильно обрабатывает загрузку содержимого в правильное время .