C#で
(型名 変数名, 型名 変数名, .....) = 変数名
と記述されているコードの紹介をします。
概要
(型名 変数名, 型名 変数名, .....)
に対して代入をするコードにより、タプルの分解という動作が実行できます。タプルの分解により、タプル内の複数の変数を、通常の複数の変数にまとめて代入することができます。
書式
(型名 変数名, 型名 変数名, .....) = タプル変数名
コード例
(int px, int py, int pz) = 3d_position;
(string key, string value) = KVItem;
プログラム
UI
下図のUIを作成します。ボタンと複数行のテキストボックスを配置します。
コード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SimpleTuple
{
public partial class FormDeconstruction : Form
{
public FormDeconstruction()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
(int x, int y, int z, string name) pos3D = (x: 120, y: 60, z: 220, name: "くじらポイント");
(int nx, int ny, int nz, string nname) = pos3D;
textBox1.Text += string.Format("x: {0:d}\r\n", nx);
textBox1.Text += string.Format("y: {0:d}\r\n", ny);
textBox1.Text += string.Format("z: {0:d}\r\n", nz);
textBox1.Text += string.Format("name: {0}\r\n", nname);
}
}
}
解説
(int nx, int ny, int nz, string nname) = pos3D;
のコードにより、pos3Dのタプルに代入された値を nx,ny,nz,nname 変数に分解しています。値の代入は左から順番に実行されるため
- nx ← pos3D.x
- ny ← pos3D.y
- nz ← pos3D.z
- nname ← pos3D.name
の順番で変数に代入されます。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。タプルに代入された値が、分解され通常の変数に代入されます。分解された変数の値をテキストボックスに表示しています。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-09-04
作成日: 2017-04-19