[解決済み] そのタプルは、どのような要件を解決するために設計されたのでしょうか?
質問
C#の新しい機能であるタプルを見ています。私は好奇心が強いのですが、タプルはどのような問題を解決するために設計されたのでしょうか?
あなたのアプリでは、タプルを何に使いましたか?
更新
これまでのご回答ありがとうございます。 タプルの良い例として、座標が指摘されています。これは正しいように見えますか?
var coords = Tuple.Create(geoLat,geoLong);
そして、このようなタプルを使います。
var myLatlng = new google.maps.LatLng("+ coords.Item1 + ", "+ coords.Item2 + ");
ということでよろしいでしょうか?
どのように解決するのですか?
プログラムを書くとき、クラスを作成するのに十分な共通性を持っていない値のセットを論理的にグループ化したいと思うことは非常によくあることです。
多くのプログラミング言語では、一つの方法で型を作成することなく、そうでなければ無関係な値のセットを論理的にグループ化することができます。
void M(int foo, string bar, double blah)
論理的にはint, string, doubleの3タプルを1引数とするメソッドMと全く同じです。 しかし、実際には作らないことを望みます。
class MArguments
{
public int Foo { get; private set; }
... etc
MArguments がビジネスロジックで何か他の意味を持たない限り。
クラスよりも軽量な構造で、そうでなければ無関係なデータの束をまとめるというコンセプトは、メソッドの正式なパラメータリストだけでなく、多くの多くの場所で役に立ちます。メソッドが返すべきものを2つ持っている場合や、1つではなく2つのデータから辞書をキーにしたい場合など、さまざまな場面で役に立ちます。
タプル型をネイティブにサポートする F# のような言語は、ユーザーに非常に大きな柔軟性を提供します。BCLチームは、F#チームと協力して、すべての言語がその恩恵を受けられるように、フレームワークのために1つのタプル型に標準化することを決定しました。
しかし、この時点では 言語 でのタプルのサポートはありません。タプルは他のフレームワークのクラスと同様に単なるデータ型であり、特別なことは何もありません。私たちは、C# の将来の仮想的なバージョンでタプルのより良いサポートを追加することを検討しています。もし、タプルを使ったどんな機能が欲しいか、ご意見があれば、設計チームにお伝えいただければと思います。現実的なシナリオは、理論的な考察よりも説得力があります。
関連
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] フィールドとプロパティの違いは何ですか?
-
[解決済み] リスト/タプルを指定されたインデックスにある要素でソートするには?
-
[解決済み] JavaでC++のPair<L,R>に相当するものは何ですか?
-
[解決済み】C#のyieldキーワードは何に使われるのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み] 関数を終了するには?
-
[解決済み] 私のC#コードで.NET 4.0タプルを使用することは、設計上の悪い判断でしょうか?
-
[解決済み] .Net 4.0でTupleを使用できる実用的な例?