Używanie ParamArray, ale wymagające co najmniej jednego parametru

Co miałem kiedyś:

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

Pierwszy wywołuje drugi z{channel} przekształcić jego parametr w tablicę.

Zdecydowałem, że stworzenie listy kanałów do przejścia do metody było niewygodne i postanowiłem połączyć dwa przeciążenia w jedną metodę, która wymagaParamArray.

Public Sub Subscribe(ParamArray channels() As ChannelType)

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

Jaka jest tutaj „najlepsza praktyka”? Podoba mi się elastycznośćParamArray daje mi po prostu pozwolenie ludziom na przekazywanie rzeczy, ale nie pomaga programistom „przyspieszyć awarię” za pomocą informacji zwrotnych o błędach kompilatora… to znaczy, że coś w styluArgumentException nie wchodzi w grę tutaj, ponieważ ludzie używający tej metody mogą nie pisać żadnych testów jednostkowych. Jedną z opcji jest następująca ...

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

Ale wydaje mi się, że prawie wracam do punktu początkowego, jest mylące i wymaga, aby moja implementacja tej metody była mniej prosta.

questionAnswers(2)

yourAnswerToTheQuestion