Доступ через get/set к элементам массива внутри класса

Вот такой простой код, а как с помощью get/set обращаться к каждому элементу массива _b в отдельности? Не писать же, к примеру, 100 новых переменных для каждого из сотни элементов массива. Вроде все просто, но никак не могу сообразить . Подскажите, пожалуйста.
class MyClass
{
  ...
  public int a
  {
    get { return _a; }
    set
    {
      if(value >=0 && value <=10)
        _a = value;
    }
  }
 
  private int _a;
  private int[] _b;
}
5 ответов

class MyClass
{
 // ...
  public int a
  {
    get { return _a; }
    set
    {
      if(value >=0 && value <=10)
        _a = value;
    }
  }
 
    public int [] B
    {
        get { return _b; }
        set { _b = value; }
    }
 
  private int _a;
  private int[] _b;
}
Использование в программе
MyClass myClass = new MyClass();
            myClass.B = new int[3];
            myClass.B[0] = 1;
            myClass.B[1] = 2;
            myClass.B[2] = 3;


Я не уточнил, у меня не получается именно условие в set задавать, т.е. value сравнивать, допустим от 0 до 10 все элементы массива должны быть


Я не уточнил, у меня не получается именно условие в set задавать, т.е. value сравнивать, допустим от 0 до 10 все элементы массива должны быть
Прикол получается в том, что value есть не значение, а ссылка, а поэтому сравнивать ты ее не можешь. И еще, когда используешь доступ к члену массива (B[0]), то работает get, а не set.


А как же тогда защитить элементы массива _b[] от недопустимых значений? Получается кто-нибудь извне может взять и любое значение любому элементу присвоить.


А как же тогда защитить элементы массива _b[] от недопустимых значений? Получается кто-нибудь извне может взять и любое значение любому элементу присвоить.
Обычно в программировании есть 1001 способ как реализовать конкретную задачу. Все зависит от воображения.
А как же тогда защитить элементы массива _b[] от недопустимых значений? Получается кто-нибудь извне может взять и любое значение любому элементу присвоить.
Как вариант, можно реализовать через класс. Посмотри вот это http://msdn.microsoft.com/ru-ru/libr...ARP%29&rd=true