Некоторый контекст: я хотел бы написать класс, в котором основной метод добавления объектов в коллекцию - это метод (или методы) с именем Add (или что-то в этом роде). И поэтому подпись, которая кажется лучшей, это params object []. Внутренне эта функция должна переключать / если-либо все типы, которые она может принимать. Таким образом, первоначально он мог принять этот массив object [], но мне бы хотелось, чтобы он также принимал object [] [], object [] [] [] и т. Д., А затем метод / функция могли бы сгладиться внутри, поэтому пользователю не нужно делать это до вызова этой функции.
Итак ...
Можно ли написать функцию, которая может принимать различные типы уровней списка для одного типа объекта? В качестве дополнительного вопроса при проектировании интерфейса к классу, который лучше принять object[]
или IEnumerable<object>
или params object[]
? (Правка: вычеркнуто из вопроса, потому что уже происходит достаточно .)
Например, я имею в виду функцию, которая принимает оба / все из object[]
, IEumerable<object>
и, возможно, дальнейшее вложение, например: IEnumerable<IEnumerable<object>>
, object[][]
(и так далее, и так далее) .
Возможно ли это?