public void Bool(string key, bool?val)
 {
     if (val.HasValue)
     {
         IniFileManager.WriteParam(section, key, val.Value ? "1" : "0", path);
     }
 }
 public void DT(string key, DateTime?val)
 {
     if (val.HasValue)
     {
         IniFileManager.WriteParam(section, key, val.Value.ToString("yyyy.MM.dd"), path);
     }
 }
 public void String(string key, string value)
 {
     if (value != null)
     {
         IniFileManager.WriteParam(section, key, value, path);
     }
 }
 public void Double(string key, double?val)
 {
     if (val.HasValue)
     {
         IniFileManager.WriteParam(section, key, val.Value.ToString(), path);
     }
 }
            public bool?Bool(string key)
            {
                string s = IniFileManager.GetParam(section, key, path);

                if (s == null)
                {
                    return(null);
                }

                int n = Convert.ToInt32(s);

                if (n < 0 || n > 1)
                {
                    throw new ArgumentException("string mast be 0 or 1");
                }
                return(n == 1);
            }
            public int?Int(string key)
            {
                string s = IniFileManager.GetParam(section, key, path);

                return(s == null ? null : (int?)Convert.ToInt32(s));
            }
            public DateTime?DT(string key)
            {
                string s = IniFileManager.GetParam(section, key, path);

                return(s == null ? null : (DateTime?)DateTime.ParseExact(s, "yyyy.MM.dd", null));
            }
 public string String(string key) => IniFileManager.GetParam(section, key, path);
            public double?Double(string key)
            {
                string s = IniFileManager.GetParam(section, key, path);

                return(s == null ? null : (double?)Convert.ToDouble(s));
            }