Как мне обратиться к свойствам массива, когда мне нужен массив, чтобы иметь интервал в C #? - PullRequest
0 голосов
/ 19 апреля 2019

Я чрезвычайно новичок в C # и все еще пытаюсь обдумать некоторые из его основных концепций. Впервые отправлю вопрос в StackOverflow.

Так что мне нужна помощь:

Создать свойство для: массива приватных строк;: так что: "Каждый элемент массива должен быть> = 0 и <= 10" </p>

Должен ли я запустить его для, а затем установить массив = значение для каждого элемента или что?

Вот что я сделал:

private string array;
 public int[] Array
        {
            get { return array; } //-is this part good for the task?
            set
            {
                //what do I do here to make sure the elements are withing the 
                //given interval?

            }
        }

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Посмотрите, нужно ли вам это ( Демо ):

public class myClass
{
    private int[] _Array = new int[10];

    public int this[int index]
    {
        get { return _Array[index]; }
        set
        {
            if (value >= 0 && value <= 10)
                _Array[index] = value;
        }
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        myClass m = new myClass();
        m[0] = 1;
        m[1] = 12;
        Console.WriteLine(m[0]); // outputs 1
        Console.WriteLine(m[1]); // outputs default value 0
    }
}
0 голосов
/ 19 апреля 2019

Вы ищете что-то подобное

private int[] _privateArray;
public int[] PublicArray
{
    get
    {
        return _privateArray;
    }
    set
    {
        foreach (int val in value)
        {
            if (val < 0 || val > 10) throw new ArgumentOutOfRangeException();
        }
        // if you get to here you can set value
        _privateArray = (int[])value.Clone();
    }
}

обратите внимание, что частная и общественная собственность должны быть одного типа

...