📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 161行目: | 161行目: | ||
== 複数の値をメソッドから受け取る == | == 複数の値をメソッドから受け取る == | ||
<code>ValueTuple</code>構造体を返すメソッドの基本的な使用方法は、以下のように記述する。<br> | |||
< | <syntaxhighlight lang="c#"> | ||
// タプル名なし(既定の名前Item1 / Item2等でアクセスする) | // タプル名なし(既定の名前Item1 / Item2等でアクセスする) | ||
var tResult1 = NewExchange1(2, 3); | var tResult1 = NewExchange1(2, 3); | ||
| 170行目: | 170行目: | ||
var tResult2 = NewExchange2(2, 3); | var tResult2 = NewExchange2(2, 3); | ||
WriteLine($"tResult2.x={tResult2.x}, tResult2.y={tResult2.y}"); | WriteLine($"tResult2.x={tResult2.x}, tResult2.y={tResult2.y}"); | ||
</ | </syntaxhighlight> | ||
<br> | |||
< | また、以下のように、受け取る時に別のタプル名を付けることもできる。<br> | ||
<syntaxhighlight lang="c#"> | |||
// タプル名なしで返すメソッド | // タプル名なしで返すメソッド | ||
(int X, int Y) tResult1 = NewExchange1(2, 3); | (int X, int Y) tResult1 = NewExchange1(2, 3); | ||
WriteLine($"tResult1.X={tResult1.X}, tResult1.Y={tResult1.Y}"); | WriteLine($"tResult1.X={tResult1.X}, tResult1.Y={tResult1.Y}"); | ||
// | // タプル名付きで返すメソッド | ||
(int M, int N) tResult2 = NewExchange2(2, 3); | (int M, int N) tResult2 = NewExchange2(2, 3); | ||
WriteLine($"tResult1.X={tResult1.M}, tResult1.Y={tResult1.N}"); | WriteLine($"tResult1.X={tResult1.M}, tResult1.Y={tResult1.N}"); | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
C# 7以降では、タプルを受け取る時に分解することも可能である。(タプルの要素を個別の変数に代入する)<br> | |||
<source lang="c#"> | <source lang="c#"> | ||
var (p, q) = NewExchange1(2, 3); | var (p, q) = NewExchange1(2, 3); | ||
| 188行目: | 189行目: | ||
</source> | </source> | ||
<br> | <br> | ||
また、(p, _) | また、(p, _)のようにして、タプルとして返された値で使用しない要素を<code>_</code>で削除することもできる。(<code>_</code>は書き込み専用の変数)<br> | ||
< | <syntaxhighlight lang="c#"> | ||
var (p, _) = NewExchange1(2, 3); | var (p, _) = NewExchange1(2, 3); | ||
WriteLine($"p={p}"); | WriteLine($"p={p}"); | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C_Sharp]] | [[カテゴリ:C_Sharp]] | ||