[C#] メソッドの引数に可変長引数(params)で且つ参照渡し(refキーワード)をしたい
バージョン
C# 8.0
概要
メソッドの引数に可変長で且つ参照渡しをしたい。
結論から書くと、paramsとrefキーワードを併用することができないので、
Actionクラスを可変長引数(params)で渡して対応する。
コード
int型配列に格納された値をチェックや加工をして、順番に画面のテキストボックスにセットする。
public void Sample() { int[] vals = { 1, 22, 333}; SetData(vals, x => { this.HogeTextBox.Text = x.ToString(); }, x => { this.FugaTextBox.Text = x.ToString(); }, x => { this.HogeFugaTextBox.Text = x.ToString(); } ); } public void SetData(int[] vals, params Action<int>[] actions) { if(vals.Length != actions.Length) { return; } for(int i = 0; i < vals.Length; i++) { var tempVal = vals[i]; // ここで値をチェックや加工する // something // 値をセットする actions[i](tempVal); } }