📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

Wiki がページ「C Sharpの基礎 - ValueTuple」を「C Sharpの基礎 - タプル」に、リダイレクトを残さずに移動しました
1行目: 1行目:
== 概要 ==
== 概要 ==
専用のクラスや構造体を定義するほどのことでもないが、複数のオブジェクトを一時的に1つに纏めたい時がある。<br>
専用のクラスや構造体を定義するほどのことでもないが、複数のオブジェクトを一時的に1つに纏めたい時がある。<br>
<br>
例えば、今までは、メソッドは1つのオブジェクトしか返せなかったので、複数の結果を返す場合は、複数の結果を格納するためだけに型を定義したり、<br>
例えば、今までは、メソッドは1つのオブジェクトしか返せなかったので、複数の結果を返す場合は、複数の結果を格納するためだけに型を定義したり、<br>
あるいは、out引数を使用していた。<br>
あるいは、out引数を使用していた。<br>
<br>
<br>
.NET Framework 4.7で導入されたValueTuple構造体(System名前空間)とVisual Studio 2017(C#7)で導入されたタプル構文を使えば、<br>
.NET Framework 4.7で導入されたValueTuple構造体(System名前空間)とVisual Studio 2017(C# 7)で導入されたタプル構文を使えば、<br>
簡単に複数の結果を一時的に1つに纏められる。<br>
簡単に複数の結果を一時的に1つに纏められる。<br>
ここでは、それらの新しい機能のうち、メソッドから複数の結果を返す方法について解説する。<br>
ここでは、それらの新しい機能のうち、メソッドから複数の結果を返す方法について解説する。<br>
<br><br>
== TupleクラスとValueTuple構造体の比較 ==
<center>
{| class="wikitable" style="background-color:#fefefe;"
|-
! style="background-color:#00ffff;" | 
! style="background-color:#00ffff;" | Tupleクラス
! style="background-color:#00ffff;" | ValueTuple構造体
! style="background-color:#00ffff;" | 匿名型
|-
| 名前付け || × || ○ || ○
|-
| 引数・戻り値 || ○ || ○ || ×
|-
| 型の種類 || クラス || 構造体 || クラス
|-
| メンバの種類 || プロパティ || フィールド || プロパティ
|-
| 不変性 || イミュータブル || ミュータブル || イミュータブル
|}
</center>
<br><br>
<br><br>