Я возился с дженериками, и IEnumerable abit, но я доволен. Вот что я пытаюсь сделать: Я хочу иметь метод, который возвращает любой тип коллекции - который реализует IEnumerable (?) - (так, например, List, Stack, Queue,...)
Кроме того, я хочу иметь возможность возвращать любой тип коллекции любого типа данных.
поэтому я хочу, чтобы этот метод мог возвращать List<string>,
, а также Stack<int>
, а также List<double>
... и т.д. и т.д.
public IEnumerable<T> returnSomething()
{
Stack<int> stackOfInts = new Stack<int>();
List<string> listOfStrings = new List<string>();
return stackOfInts;
}
Это то, что я пробовал до сих пор. это, однако, не работает, я получаю эту ошибку:
Cannot implicitly convert type 'System.Collections.Generic.Stack<int>' to 'System.Collections.Generic.IEnumerable<T>'. An explicit conversion exists (are you missing a cast?)
однако, если я заменил IEnumerable<T>
в сигнатуре метода на IEnumerable<int>
, я могу вернуть любую коллекцию типа int. Однако это означает, что теперь я больше не могу вернуть ListOfStrings
.
по достоинству оценят любые предложения или идеи:)