C#で静的インデクサーが許可されないのはなぜですか?それらが許可されるべきではなく、さらにそれらが非常に有用である理由は私にはわかりません。
例えば:
public static class ConfigurationManager 
{
        public object this[string name]
        {
            get => ConfigurationManager.getProperty(name);
            set => ConfigurationManager.editProperty(name, value);
        }
        /// <summary>
        /// This will write the value to the property. Will overwrite if the property is already there
        /// </summary>
        /// <param name="name">Name of the property</param>
        /// <param name="value">Value to be wrote (calls ToString)</param>
        public static void editProperty(string name, object value) 
        {
            var ds = new DataSet();
            var configFile = new FileStream("./config.xml", FileMode.OpenOrCreate);
            ds.ReadXml(configFile);
            if (ds.Tables["config"] == null)
                ds.Tables.Add("config");
            var config = ds.Tables["config"];
            if (config.Rows[0] == null) 
                config.Rows.Add(config.NewRow());
            if (config.Columns[name] == null) 
                config.Columns.Add(name);
            config.Rows[0][name] = value.ToString();
            ds.WriteXml(configFile);
            configFile.Close();
        }
        public static void addProperty(string name, object value) =>
            ConfigurationManager.editProperty(name, value);
        public static object getProperty(string name) 
        {
            var ds = new DataSet();
            var configFile = new FileStream("./config.xml", FileMode.OpenOrCreate);
            ds.ReadXml(configFile);
            configFile.Close();
            if (ds.Tables["config"] == null) return null;
            var config = ds.Tables["config"];
            if (config.Rows[0] == null) return null;
            if (config.Columns[name] == null) return null;
            return config.Rows[0][name];
        }
    }上記のコードは、静的インデクサーから大きなメリットを得ます。ただし、静的インデクサーは許可されていないため、コンパイルされません。これはなぜですか?
foreach (var enum in Enum):)