Позвольте мне объяснить:
- Это обобщенная функция.
- Используется приходная коллекция. с итераторами в нашем случае
IList<Type>
интерфейс для коллекции от System.Collections.Generic
namespace.
так что позволяет начать работу:
, как я знаю, C# по умолчанию контейнеры не обеспечивает функцию итератора, поэтому я resplaced его использованием IList<Type>
интерфейс которым обеспечивают аналогичны итератор индексов.
Как вы можете видеть, что это не хорошо делать, как этот
template<class _Col>
void __insert
(
_Col& collection,
typename _Col::iterator first,
typename _Col::iterator last
)
{
for (; first != last; ++first)
{
collection.insert(*first);
}
}
Поскольку _Col
может содержать не только классы коллекций шаблонов, но и любой другой класс, и если этот другой класс не prowide соответствующего интерфейса компиляции процесс выходит из строя. То же самое для итераторов есть много его типов.
Поэтому я настоятельно рекомендую вам придерживаться конвенции, что если вы считаете, что используете шаблон типа как своего рода функцию сбора, попробуйте использовать объявление collection<Type>
для параметра и funcName<Type>
о функции. Это обеспечит правильную обработку ваших данных.
static void Insert<Type>(IList<Type> outputCollection, IList<Type> inputCollection, int start, int end)
{
if (end >= inputCollection.Count)
return;
for (int i = start; i < end; i++)
outputCollection.Add(inputCollection[i]);
}
В C# нет прямого эквивалента этому коде. Вам нужно будет выяснить, что такое результат, и написать совершенно новый метод, а не только клон из вышеперечисленного. – Corey
Перечислимые и общие типы Google C#, затем дайте ему шанс и скажите нам, что является результатом. – Gnqz