Статический класс / метод this и generics - PullRequest
3 голосов
/ 19 августа 2011

Итак, у меня есть определенный метод, который я хочу вызвать в List (это универсальный метод, который я запускаю каждый раз в разных файлах, поэтому я хотел бы поместить его в статический класс).

метод таков:

public static List<Item> GetRangeOrMax(this List<Item> list, int amount)
        {
            return list.Count < amount ? list.GetRange(0, list.Count) : list.GetRange(0, amount);
        }

Проблема в том, что не каждый список, для которого мне нужно запустить этот файл, имеет тип Item.Мне было интересно, смогу ли я решить эту проблему с помощью дженериков?Скажите что-нибудь вроде (this List<T> list ...

Проблема здесь в том, что метод должен также возвращать это значение, и я хотел бы продолжать использовать ключевое слово this. Если это невозможно, я думаю, что я 'Придется сделать метод с разным перегрузчиком для каждого типа.

1 Ответ

6 голосов
/ 19 августа 2011

Вы можете использовать универсальный метод расширения.

static List<T> GetRangeOrMax<T>(this List<T> list, int amount)        
{            
      return list.Count < amount ? list.GetRange(0, list.Count) : list.GetRange(0, amount);        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...