Как я перегружаюсь [] оператор в C# [дубликат]

285
задан AustinWBryan 16 August 2019 в 04:48
поделиться

4 ответа

public int this[int key]
{
    get
    {
        return GetValue(key);
    }
    set
    {
        SetValue(key,value);
    }
}
724
ответ дан AustinWBryan 23 November 2019 в 01:50
поделиться

Я полагаю, что это - то, что Вы ищете:

Индексаторы (Руководство по программированию C#)

class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer
class Program
{
    static void Main(string[] args)
    {
        SampleCollection<string> stringCollection = 
            new SampleCollection<string>();
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}
64
ответ дан AustinWBryan 23 November 2019 в 01:50
поделиться

[] оператор называют индексатором. Можно обеспечить индексаторы, которые берут целое число, строку или любой другой тип, который Вы хотите использовать в качестве ключа. Синтаксис прост, после тех же принципов как средства доступа свойства.

, Например, в Вашем случае, где int ключ или индекс:

public int this[int index]
{
  get
  {
     return GetValue(index);
  }
}

можно также добавить средство доступа набора так, чтобы индексатор стал считанным, и запишите, а не просто только для чтения.

public int this[int index]
{
  get
  {
     return GetValue(index);
  }

  set
  {
    SetValue(index, value);
  }
}

, Если Вы хотите индексировать использование другого типа, Вы просто изменяете подпись индексатора.

public int this[string index]
...
30
ответ дан AustinWBryan 23 November 2019 в 01:50
поделиться
public int this[int index]
{
    get
    {
        return values[index];
    }
}
9
ответ дан AustinWBryan 23 November 2019 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: