回答:
使用に関する問題Tuple
は、ジェネリック型パラメーターが意味を伝えないことです。
読みやすくするために、カスタムクラスまたは名前付きメンバーを持つ匿名型の使用を検討することもできます。
T1
、T2
などは、彼らが何を意味するかを教えてくれません。
GetTopTwoPercentages()
を返すというメソッドがあるとしましょうTuple<decimal, decimal>
。それは十分に明らかかもしれません。
最も重要なコード品質の1つは読みやすさです。自問してみてください:
私(つまり、あなた以外の誰か)がメソッドシグネチャを見ると、それぞれのコンポーネントが持つ意味を知ってTuple
いますか?
たとえば、返すフロートのペアが極座標のセットである場合、これは明らかですか?
これは明らかです:
Tuple<Float, Float> getPolarCoords();
これは誤解を招く可能性があります(デカルト座標を仮定するため)。
Tuple<Float, Float> getCoords();
そして、これは意味を欠いています:
Tuple<Float, Float> getTuple();
そのため、一般的に言えば、ケースごとに明確性を評価し、必要に応じてリファクタリングを行います。Tuple
多くの異なる場所と同じ種類のデータを表す場合、クラスを作成することは間違いなく良い考えです。