タプルは用途が広い反面、あまり明確ではない場合があります。
ベスト プラクティスとして、パブリック メソッドの戻り値の型にタプルを使用しないでください。同様に、パブリック メソッドの任意のパラメーターの型に使用しないでください。
つまり、保護、内部、およびプライベート メソッドの宣言でのみ使用する必要がありますか?
この問題はパブリックvプライベートではなく、単に「優れたAPI設計とは何か」です。C#APIでTupleを使用することはめったにないと思います。まれに、Tupleを使用する場合があります。最も一般的なのは、リターンタイプ(複数のものを返したい場合)です。しかし、過度に一般的なルール(「愚かな一貫性...」)であまりにも規範的であってはなりません。個々の状況に応じて正しいことを行います。パラメータで使用する場合があります(特に、他の言語との相互運用など)。
私は、次のような「生の」コレクションタイプに対して行うのと同じガイダンスを使用する傾向がありますDictionary<TKey, TValue>
。もう少し強くタイプされたものを使用します。独自の内部メソッド内では問題ありませんが、パブリック入力または出力値としてよりドメイン固有の型を使用してください。