[.NET] Tuple は、 配列じゃないのよ~
…だから、 Tuple ( 組 ) に要素が 10個も 20個もあったら、 ワケワカメになるだけだろうに。
Microsoft Connect FeedbackID=508979 のコメント
投稿者: biac、投稿日時: 2009/11/08 19:35Tuple (組) は、 配列やリストではありません。 むしろ、 匿名の構造体とでもいうべきものです。
構造体のメンバーが多すぎると混乱を招くことがあるように、 Tuple (組) の要素も多すぎるのは好ましくありません。
Tuple (組) のサンプルに、 いかにも配列のような例が多いので、 誤解を招いているのかもしれません。 しかし、 配列とはまったく異なるものであることは、 インデクサや IEnumerable が実装されていないことからも分かります。
仮に、 20-tuple を作ったとしましょう。 しかし、 その要素にアクセスするのに foo[19] といった構文は使えません。 foo.Item19 とか foo.Item17 とか、 ハードコーディングする必要があります。 配列代わりに使おうとすると、ループで処理できないので、 不便なだけです。 Tuple (組) の趣旨に沿って異なるものを格納しているとすると、 Item17 は何だったのか、 Item19 は何だったのか、 記憶していられる人はどれだけ居るでしょう?たしかに、 8個という上限は恣意的に決められたものです。 でも、 人間が一度に記憶できるのは 7個程度だと言われていることからすると、 妥当な設計でしょう。
参考までに。 8個に決定した経緯が、 MSDN マガジン 2009年 7月号に書かれています。
http://msdn.microsoft.com/ja-jp/magazine/dd942829.aspx
# 個人的には 3つまででいいじゃんと思ってみたり。 「ひとつ、 ふたつ、 みっつ、 …たくさん!」f(^^;
PS.
それと、 Tuple (組) を返すメソッドやプロパティは、 ぜひとも private か internal で。 まちがっても public にはしないようにお願いしますね~。
まぁ、 Tuple<int, int> CalcNewPosition(int nowX, int nowY) ってな感じで、 シグネチャから Tuple の中身が見当付く場合は public で使ってもかまわんと思うけど。
| 固定リンク
« [.NET] UNICODE のファイルを Shift_JIS として読み込んだら、 当然文字化け …しないこともある (@@; | トップページ | [NEWS] TFS に Eclipse から接続するツールを、 Microsoft が買収。 MS ブランドの製品として開発へ。 »
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント