恥ずかしながら、つい最近知りました。
WebFormでHoge1, Hoge2, …, HogeN というラベルなりテキストなり、何かしらのコントロールがあるとします。
この場合に“Hoge”という部分は変わらないので、ループして一括で処理させたい!と思ったのですが、どうすれば実現できるのかわからず、調べてみると、FindControl という便利なメソッドがありました。
for (int i = 1; i <= 10; i++)
{
((Label)FindControl("Hoge" + i.ToString())).Text = i.ToString();
}
とすると、10個のテキストに対して、順番に値が代入されます。
ほな、メソッドやプロパティの名称がHoge1, Hoge2, …, HogeNの場合はどうするねん。
ありました。System.Reflection名前空間のMethodInfoクラスとPropertyInfoクラス。
文字列で指定したメソッドを呼び出すには?
じゃぁ、Hoge1, Hoge2, …, HogeNってゆうローカル変数は?
……わからん。
おとなしく配列にしなさいってことでしょうか?