Использование ParamArray, но требуется хотя бы один параметр

Что у меня раньше было:

Public Sub Subscribe(channel As ChannelType)
Public Sub Subscribe(channels As IEnumerable(Of ChannelType))

Первый просто вызывает второй с{channel} преобразовать его параметр в массив.

Я решил, что создавать список каналов для передачи методу было неудобно, и решил объединить две перегрузки в один метод, который требуетParamArray.

Public Sub Subscribe(ParamArray channels() As ChannelType)

'Usage
Subscribe(ChannelType.News)
Subscribe(ChannelType.News, ChannelType.Sports)
Subscribe() 'Oops... this is valid

Что такое «лучшая практика»? Вот? Мне нравится гибкость, котораяParamArray дает мне просто позволить людям передавать вещи, но это не помогает разработчику "быстрее-сбой" через сообщение об ошибке компилятора ... это означает, что что-то вродеArgumentException здесь не может быть и речи, так как люди, использующие этот метод, могут не писать никаких модульных тестов. Один из вариантов заключается в следующем ...

Public Sub Subscribe(channel As ChannelType)
Public Sub Subscribe(channel As ChannelType, ParamArray channels() As ChannelType)

Но я чувствую, что это возвращает меня к исходному положению, сбивает с толку и требует, чтобы моя реализация этого метода была менее прямой.

Ответы на вопрос(2)

Ваш ответ на вопрос