SORU
30 Aralık 2008, Salı


Statik Dizin Oluşturucu?

Neden statik dizin oluşturucu C izin verilmez#? İzin olmaması için bir neden göremiyorum ve ayrıca çok kullanışlı olabilir.

Örneğin:

static class ConfigurationManager {

        public object this[string name]{
            get{
                return 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) {
            DataSet ds = new DataSet();
            FileStream configFile = new FileStream("./config.xml", FileMode.OpenOrCreate);
            ds.ReadXml(configFile);

            if (ds.Tables["config"] == null) {
                ds.Tables.Add("config");
            }

            DataTable 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) {
            DataSet ds = new DataSet();
            FileStream configFile = new FileStream("./config.xml", FileMode.OpenOrCreate);
            ds.ReadXml(configFile);
            configFile.Close();


            if (ds.Tables["config"] == null) {
                return null;
            }

            DataTable config = ds.Tables["config"];

            if (config.Rows[0] == null) {
                return null;
            }

            if (config.Columns[name] == null) {
                return null;
            }

            return config.Rows[0][name];
        }
    }

Yukarıdaki kod büyük ölçüde statik bir dizin oluşturucu yararlanacak. Ancak statik dizin oluşturucu izin verilmez çünkü derleme değil. Neden bu kadar mı?

CEVAP
30 Aralık 2008, Salı


Çok faydalı sayılmaz olduğuna inanıyorum. Yazık bence de - kullanmak eğiliminde bir örnek Kodlama Kodlaması.("") Foo Kodlama edilebilir. [""] Foo. GetEncoding Ortaya çıkacağını sanmıyorumçoksık sık, ama her şey bir yana biraz tutarsız geliyor.

Ama ben kontrol etmek istiyorumşüpheliIL içinde mevcut zaten.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007