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

 
(同じ利用者による、間の1版が非表示)
161行目: 161行目:


== 複数の値をメソッドから受け取る ==
== 複数の値をメソッドから受け取る ==
ValueTuple構造体を返すメソッドの基本的な呼び出し方は、次のコードのようになる。<br>
<code>ValueTuple</code>構造体を返すメソッドの基本的な使用方法は、以下のように記述する。<br>
  <source lang="c#">
  <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}");
  </source>
  </syntaxhighlight>
あるいは、次のコードのように、受け取るときに別のタプル名を付けることもできる。<br>
<br>
  <source lang="c++">
また、以下のように、受け取る時に別のタプル名を付けることもできる。<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}");
  </source>
  </syntaxhighlight>
<br>
<br>
更に、C# 7では、タプルを受け取るときにいきなり分解することも可能である。(タプルの要素を個別の変数に代入する)<br>
C# 7以降では、タプルを受け取る時に分解することも可能である。(タプルの要素を個別の変数に代入する)<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  var (p, q) = NewExchange1(2, 3);
  var (p, q) = NewExchange1(2, 3);
  WriteLine($"p={p}, q={q}");
  WriteLine($"p={p}, q={q}");
  </source>
  </syntaxhighlight>
<br>
<br>
また、(p, _)のようにして、タプルとして返された値で使わない要素を「_」で示すこともできる。(「_」は書き込み専用の変数)<br>
また、(p, _)のようにして、タプルとして返された値で使用しない要素を<code>_</code>で削除することもできる。(<code>_</code>は書き込み専用の変数)<br>
  <source lang="c#">
  <syntaxhighlight lang="c#">
  var (p, _) = NewExchange1(2, 3);
  var (p, _) = NewExchange1(2, 3);
  WriteLine($"p={p}");
  WriteLine($"p={p}");
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:C_Sharp]]
[[カテゴリ:C_Sharp]]