私が以前持っていたもの:
Public Sub Subscribe(channel As ChannelType)
Public Sub Subscribe(channels As IEnumerable(Of ChannelType))
{channel}
最初のものは、パラメーターを配列に変換するために2 番目のものを呼び出すだけです。
メソッドに渡すチャネルのリストを作成しなければならないのは面倒だと判断し、2 つのオーバーロードをParamArray
.
Public Sub Subscribe(ParamArray channels() As ChannelType)
'Usage
Subscribe(ChannelType.News)
Subscribe(ChannelType.News, ChannelType.Sports)
Subscribe() 'Oops... this is valid
ここでの「ベストプラクティス」は何ですか? ParamArray
人々が何かを渡せるようにする柔軟性が気に入っていますがArgumentException
、コンパイラエラーフィードバックを介して開発者が「フェイルファースト」するのを助けることはできません.メソッドが単体テストを作成していない可能性があります。1つのオプションは次のとおりです...
Public Sub Subscribe(channel As ChannelType)
Public Sub Subscribe(channel As ChannelType, ParamArray channels() As ChannelType)
しかし、それは私をほぼ振り出しに戻し、混乱を招き、そのメソッドの実装をそれほど単純にする必要があるように感じます。