• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

C# indexers

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    C# indexers

    Can anyone explain WHY C# does not support static indexers

    eg.

    PHP Code:
            public static string this[string key]
            {
                
    get
                
    {
                    
    NameValueCollection config = (NameValueCollection)ConfigurationSettings.GetConfig("mysection/mysettings");
                    return 
    config[key];
                }
            } 
    They would be very useful.

    #2
    static

    an indexer is used to access instance data within a collection. Static methods & properties cannot access instance data so there would be little point in having one....
    whats the lowest you can do this for?

    Comment


      #3
      But you have static methods and properties to access static data so why not support having a static indexer to access static data?

      A static indexer would be nice when you have multiple static values that you would like to access by index or key, such as configuration data, that is not instance specific.

      Anyway, just seems odd not to support such a concept when C# supports static methods and properties.....

      Comment


        #4
        fudge

        you can fudge this functionality by using the following, MS use this internally in the framework, using reflector check how Items property of the ListView control works

        public class MyCollection
        {
        // Indexer
        public MyCollection this[int index]
        {
        get
        {
        // Return an item of MyCollection here
        }
        }
        }

        public class foo
        {
        private static MyCollection staticColl;

        // Property that returns the collection
        public static MyCollection coll
        {
        get
        {
        return staticColl;
        }
        }
        }
        whats the lowest you can do this for?

        Comment

        Working...
        X