Индексатор получить по ссылке или получить + установить? - PullRequest
0 голосов
/ 01 ноября 2019

Это мой класс:

class MyArray<T>
{
    private T[] data;
    public MyArray(int size)
    {
        data = new T[size];
    }
    public MyArray(in T[] array)
    {
        data = new T[array.Length];
        for (int i = 0; i < array.Length; i++)
            data[i] = array[i];
    }
    public T this[int i] //I am talking about this indexer
    {
        get => data[i];
        set => data[i] = value;
    }
}

Должен ли я, вместо того, чтобы делать, как описано выше, определить свой индексатор следующим образом?

public ref T this[int i]
{
    get => data[i];
}

Какой метод выбрать? Из того, что я вижу, метод 1 позволяет вам выполнить дополнительный код при получении установки значения, однако метод 2 позволяет вам сделать что-то вроде int.TryParse(str, out myArrayObj[i]);

РЕДАКТИРОВАТЬ: Этот вопрос относится не только к индексаторам, нок любой собственности в целом.

...