Подумал, что для моего стиля программирования подходит хранить часть данных в словарях, которые находятся в словарях. Нормальная ли практика использовать словарь внутри словаря на C#?
У меня это выглядит так в коде:
Код
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Game : MonoBehaviour { // Global Variable Groups public Dictionary<string,Dicts> Group = new Dictionary<string,Dicts>();
void Awake() { }
void Update() { } }
[System.Serializable] public class Dicts { public Dictionary<string,int> num = new Dictionary<string,int>(); public Dictionary<string,string> txt = new Dictionary<string,string>(); }
Ибо я всё ещё только перехожу на C# с JS, и не совсем уверен будут ли проблемы с утечкой или другие траблы. Если не будет проблем, но будет медленнее, чем у крутых современных способов хранения данных, то ничего страшного, мои игры камерные, с небольшим количеством персонажей и объектов на экране, и я почти не программист, больше художник, так что мне бы подошёл такой способ.
Ибо очень удобно свой мини-язык для скриптинга уровней написать и потом легко доставать из dictionary через имя string любую мне нужную переменную с помощью этого языка. Как бы это главная цель зачем хочу использовать dictionary, чтобы был лёгкий доступ к переменным через название переменной. Но не уверен, будут ли утечки с подобной структурой.
Сообщение отредактировал alexsilent - Четверг, 02 Января 2020, 16:07
Спасибо! Хотя думал будет много критики в сторону моего способа)
Добавлено (02 Января 2020, 16:11) --------------------------------------------- Про dynamic прикольная статья, звучит как переменные в Lua, мне очень нравится программирование на Lua из-за динамических переменных, когда не уверен какая переменная будет. Хотя кажется (если не ошибаюсь) тут на форуме я видел комменты в духе, что лучше не пользоваться такими переменными в C#.
Сообщение отредактировал alexsilent - Четверг, 02 Января 2020, 16:11
тут на форуме я видел комменты в духе, что лучше не пользоваться такими переменными в C#.
бред, dynamic идеально подходит для твоей задачи, с ним будет чище код и лучше производительность (можешь почитать как именно оно оптимизировано: https://habr.com/ru/post/144330/)
Ну так используйте для скриптинга Lua, в чем дело то? Куча фреймворков есть
Я находил несколько старых Lua плагинов для юнити, а практически всегда старые плагины не работают для новой юнити, у меня 90% старые плагины (которые я раньше использовал) выдают ошибки, и я даже не стал пробовать. Есть ли какой-нибудь актуальный Lua плагин для юнити на текущий момент? И что делать, если юнити снова обновится так, что старые плагины перестанут работать, а обновления не последует на этот плагин? Обычно оно так и происходит, поэтому я старался использовать всё своё, даже если оно кривое, смогу понять, где у меня ошибки, и как поправить.
Сообщение отредактировал alexsilent - Пятница, 03 Января 2020, 13:27