3

タプルを使用する主な利点は何ですか? どのようなシナリオでこれらを使用する必要がありますか?

4

3 に答える 3

4

匿名のタプルクラスではなく、Tuple<>タイプについて話していると思います。

匿名型と同様に、Tuple <>を使用すると、いくつかのオブジェクトをグループ化するためだけに新しいクラスを宣言することを回避できます。匿名型とは異なり、タプル型には既知の名前があるため、メソッドの戻り値やパラメーター値などとして使用できます。

個人的には、Tuple <>を多用しないようにしています。これは、特にプリミティブ型で使用すると、コードを理解しにくくなる可能性があるためです(たとえば、Tupleが表示された場合、各フィールドが何を表しているのかがわかりません)。

タプルが非常に便利であることがわかった場所の1つは、辞書のキーとしてです。タプルはEquals()とGetHashCode()を実装しているため(==ではありません!)、複合キーに基づいて情報をキャッシュするプライベート辞書などに最適です。

于 2012-09-21T03:12:45.840 に答える
2

ほとんどの場合、1 つのオブジェクトのみを渡すことができるオブジェクトのグループを渡すためだけに、いくつかのプロパティを持つクラス/構造体を宣言することを避けるために使用されます。

于 2012-09-21T03:06:51.890 に答える
0

通過する URL のリストがあり、エラー (4xx または 5xx) が発生した場合はリストを作成し、後でそれをユーザーに表示するか、デバッガーで確認したいとします。

使用する 1 つまたは 2 つの関数の構造体を作成する代わりに、Web 例外をキャッチしてTuple<string, int>(url, http エラー コード) を取得します。リストに 0 個以上のアイテムがある場合、ブレークポイントがオンになっている foreach ループでさえあるかもしれません。そんな時に重宝します。

于 2012-09-21T03:10:41.497 に答える