Simmerliner Ответов: 2

Могу ли я добавить вспомогательную перегрузку в коллекцию?


Я определил такой класс:

class TextEnhancement
...
public TextEnhancement(int offset, int length)
{
   ...
}

А затем я определил коллекцию, которая использует этот тип как:
public List<TextEnhancement> mTextEnhancements;

Обычно я затем добавляю элемент в эту коллекцию таким образом:
mTextEnhancements.Add(new TextEnhancement(offset: 6, length: 5));

Однако можно ли также обеспечить некоторую вспомогательную перегрузку, которая позволила бы мне добавить элемент в эту коллекцию следующим образом?
mTextEnhancements.Add(offset: 6, length 5);

Спасибо.

Что я уже пробовал:

Я совершенно сбит с толку, поэтому все еще в замешательстве. Вот почему я обратился к гуру C# на этом сайте, чтобы узнать, можно ли это сделать.

2 Ответов

Рейтинг:
20

Dave Kreskowiak

Создайте свой собственный тип коллекции, наследуя от Collection<t>:

public class TextEnhancementCollection<TextCollection>
{
    public void Add(int offset, int length)
    {
        Add(new TextEnhancement(offset, length);
    }
}


Создайте свою коллекцию вместо использования List<t>:
TextEnhancementCollection myCollection = new TextEnhancementCollection();
myCollection.Add(6, 5);


Рейтинг:
0

Simmerliner

Превосходно!

Спасибо, Дэвид.

Это имеет полный смысл.