Click here to Skip to main content
15,900,511 members
Home / Discussions / C#
   

C#

 
GeneralRe: Can I create an array or List of class properties? Pin
Member 9629-Mar-07 8:58
Member 9629-Mar-07 8:58 
GeneralRe: Can I create an array or List of class properties? Pin
Not Active29-Mar-07 9:22
mentorNot Active29-Mar-07 9:22 
GeneralRe: Can I create an array or List of class properties? Pin
Member 9629-Mar-07 10:02
Member 9629-Mar-07 10:02 
AnswerRe: Can I create an array or List of class properties? Pin
led mike29-Mar-07 8:13
led mike29-Mar-07 8:13 
GeneralRe: Can I create an array or List of class properties? Pin
Member 9629-Mar-07 8:19
Member 9629-Mar-07 8:19 
GeneralRe: Can I create an array or List of class properties? Pin
led mike29-Mar-07 8:30
led mike29-Mar-07 8:30 
GeneralRe: Can I create an array or List of class properties? Pin
Member 9629-Mar-07 8:59
Member 9629-Mar-07 8:59 
AnswerRe: Can I create an array or List of class properties? Pin
Leslie Sanford29-Mar-07 10:41
Leslie Sanford29-Mar-07 10:41 
John Cardinal wrote:
//Perhaps what I'm after is storing a list of pointers to the properties in the List or
//Array or whatever collection


I think your switch statement approach is fine; it's the way I'd do it. If you wanted to get fancy, you could initialize an array with anonymous methods that delegate to the propery:

using System;
using System.Collections.Generic;
using System.Text;

namespace PropertyTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Example e = new Example();

            e[0] = 42;
            e[1] = 3;

            Console.WriteLine(e[0]);
            Console.WriteLine(e[1]);

            Console.Read();
        }
    }
 
    public class Example
    {
        delegate int PropertyGetter();
        delegate void PropertySetter(int value);
 
        private int prop1 = 0;
        private int prop2 = 0;
 
        private List<PropertyGetter> getters = new List<PropertyGetter>();
        private List<PropertySetter> setters = new List<PropertySetter>();
 
        public Example()
        {
            getters.Add(delegate()
            {
                return Property1;
            });
 
            getters.Add(delegate()
            {
                return Property2;
            });
 
            setters.Add(delegate(int value)
            {
                Property1 = value;
            });
 
            setters.Add(delegate(int value)
            {
                Property2 = value;
            });
        }
 
        public int this[int index]
        {
            get
            {
                return getters[index]();
            }
            set
            {
                setters[index](value);
            }
        }
 
        public int Property1
        {
            get
            {
                return prop1;
            }
            set
            {
                // Enforce preconditions...

                prop1 = value;
            }
        }
 
        public int Property2
        {
            get
            {
                return prop2;
            }
            set
            {
                // Enforce preconditions...

                prop2 = value;
            }
        }
    }
}


I'm not sure if there's any real advantage of this approach over a switch statement. It may mean just as much work if not more.
GeneralRe: Can I create an array or List of class properties? Pin
Member 9629-Mar-07 10:51
Member 9629-Mar-07 10:51 
QuestionQuick Question Pin
Ennis Ray Lynch, Jr.29-Mar-07 7:14
Ennis Ray Lynch, Jr.29-Mar-07 7:14 
AnswerRe: Quick Question Pin
kubben29-Mar-07 7:26
kubben29-Mar-07 7:26 
GeneralRe: Quick Question Pin
Ennis Ray Lynch, Jr.29-Mar-07 8:10
Ennis Ray Lynch, Jr.29-Mar-07 8:10 
GeneralRe: Quick Question Pin
kubben5-Apr-07 9:35
kubben5-Apr-07 9:35 
GeneralRe: Quick Question Pin
Vasudevan Deepak Kumar29-Mar-07 9:05
Vasudevan Deepak Kumar29-Mar-07 9:05 
AnswerRe: Quick Question Pin
Member 9629-Mar-07 7:40
Member 9629-Mar-07 7:40 
QuestionThreading Pin
HexaDeveloper29-Mar-07 6:02
HexaDeveloper29-Mar-07 6:02 
AnswerRe: Threading Pin
Not Active29-Mar-07 6:12
mentorNot Active29-Mar-07 6:12 
GeneralRe: Threading Pin
HexaDeveloper29-Mar-07 7:05
HexaDeveloper29-Mar-07 7:05 
AnswerRe: Threading Pin
Member 9629-Mar-07 7:42
Member 9629-Mar-07 7:42 
GeneralRe: Threading Pin
HexaDeveloper29-Mar-07 9:50
HexaDeveloper29-Mar-07 9:50 
GeneralRe: Threading Pin
Member 9629-Mar-07 10:01
Member 9629-Mar-07 10:01 
GeneralRe: Threading Pin
HexaDeveloper29-Mar-07 11:12
HexaDeveloper29-Mar-07 11:12 
GeneralRe: Threading Pin
Member 9629-Mar-07 11:28
Member 9629-Mar-07 11:28 
GeneralRe: Threading Pin
HexaDeveloper30-Mar-07 9:57
HexaDeveloper30-Mar-07 9:57 
GeneralRe: Threading Pin
Member 9630-Mar-07 10:54
Member 9630-Mar-07 10:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.