public bool TryGet(string name, out EnabledProperty <string> define)
        {
            if (TryGetIndex(name, out int index))
            {
                define = m_defines[index];
                return(true);
            }

            define = default;
            return(false);
        }
        public bool SetEnable(string name, bool value)
        {
            if (TryGetIndex(name, out int index))
            {
                EnabledProperty <string> define = m_defines[index];

                define.Enabled = value;

                m_defines[index] = define;
                return(true);
            }

            return(false);
        }
        public static void ClearDefinesAll(BuildTargetGroup buildTargetGroup, DefinesSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            for (int i = 0; i < settings.Defines.Count; i++)
            {
                EnabledProperty <string> define = settings.Defines[i];

                if (!string.IsNullOrEmpty(define))
                {
                    DefinesEditorUtility.RemoveDefine(define, buildTargetGroup);
                }
            }
        }
        public bool TryGetIndex(string name, out int index)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("Value cannot be null or empty.", nameof(name));
            }

            for (int i = 0; i < m_defines.Count; i++)
            {
                EnabledProperty <string> define = m_defines[i];

                if (define.Value == name)
                {
                    index = i;
                    return(true);
                }
            }

            index = default;
            return(false);
        }
 set => SetValue(EnabledProperty, value);