Yves Kurz wrote:
Hallo..

maybe anyone of you can help me with this. Is it possible to write
properties which uses indexers?


I tried someting like this but i can't compile it:

class A {
        protected object [] o;

        public object O [int i] {
                get { return o[i]; }
                set { o[i] = value; }
        }
}

You want something like this:


class A {
        protected internal object[] o;
        private AO ao = new AO(this);
        public AO O {
                get {return ao;}
        }
}

class AO {
        private A a;
        internal AO(A a) {this.a = a;}
        public object this[int i] {
                get {return a.o[i];}
                set {a.o[i] = value;}
        }
}

Basically the trick is to have a readonly property which returns an object that supports the indexer. All the other code in the AO class is just keeping track of which particular A's O you want to return. Note that I made several of the properties internal - this may be necessary so that A and AO can talk to each other - as far as I can tell, C# supports nested classes like Java, but *doesn't* give those classes access to private members.

Stuart.

--
Stuart Ballard, Senior Web Developer
FASTNET - Web Solutions
(215) 283-2300, ext. 126
www.fast.net

_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to