Это мой класс:
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]);
РЕДАКТИРОВАТЬ: Этот вопрос относится не только к индексаторам, нок любой собственности в целом.