Язык, который я использую, является C#.метод передачи пароля в качестве IEnumerable <T> или как Список <T>
Как я прочитал, что лучше, если метод объекта возвращает перечислимый тип, как список, изложить ему свою подпись как ниже:
private IEnumerable<int> listOfNumbers()
{
// here goes the code of the method
}
вместо
private List<int> listOfNumbers()
{
// here goes the code of the method
}
Пусть теперь мы хотим передать в качестве параметра список объектов типа A.
Когда мы пишем
private IEnumerable<int> listOfNumbers(List<A> list)
{
// here goes the code of the method
}
легче получить доступ к элементам списка и делать какие-либо расчеты с ними, а не писать
private IEnumerable<int> listOfNumbers(IEnumerable<A> list)
{
// here goes the code of the method.
}
Во втором случае, для того, чтобы получить доступ к элементам списка, который реализует интерфейс IEnumerable , мы должны преобразовать список в список, внутри кода метода.
Я немного смущен о лучшем способе передать в качестве параметра тип tha реализует интерфейс IEnumerable. Какой лучший подход между двумя этими двумя? Есть ли лучший способ?
Заранее благодарим за любую помощь.
Продолжайте абстрагировать определение, пока не заметите, что у вас больше нет доступных методов. Затем перейдите на одно место назад и возьмите абстракцию в этот момент. –
это лучше, потому что это позволяет использовать любой тип, реализующий 'IEnumerable ' (включая 'List ', 'A []', ...), используя 'List ', ограничивает использование этого типа. –