- - PR -
[C#] 変数名をループの中で変えて使用したい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-29 17:38
いつもお世話になっています。
表題の通りC#で変数名を変えて使用したいのですが、例えば TextBoxが10個あったとして、その中身を連結して一つの変数に入れたいとした場合 string str += TextBox[i].Text; みたいな感じでループの中で変数名も動的に変えたいのですが Flashであればeval関数みたいのがありますが、C#ではこういう事は できるのでしょうか? | ||||||||
|
投稿日時: 2006-05-29 18:04
Flashはよく知りませんが、
Qさんの仰っている string str += TextBox[i].Text; という表記法はそのままの形で使えますよ。 TextBoxの配列にして、初期値の設定を指定のTextBoxにしてやればオッケーです。 TextBox[] txt = new TextBox[]{textBox1,textBox2} | ||||||||
|
投稿日時: 2006-05-29 18:16
FindControl とか
じゃんぬさんのページ http://jeanne.wankuma.com/tips/form/findcontrol.html | ||||||||
|
投稿日時: 2006-05-29 23:31
でもスレ元のコードをループで括ると、変数のスコープ外になってしまうので、string str はループの外に置きましょう。
#eval関数がどんなものかは知りませんが、Flash よりは高度なことができると信じたい初心者 CShaper でした。 | ||||||||
|
投稿日時: 2006-05-30 09:32
ありがとうございます。理解する事ができました。
今回、これを使って何かしたいという訳ではなかったですが、あれば なにかに使えるかなと思って興味本位で質問させていただきました。 C#初心者で配列の[]の後に{}で何か書いてるのは何なんだろう?って 思ってましたが初期化してたんですね。Javaとかだとこういう書き方しないので とまどいました。 まだまだ勉強不足です。 これからもお世話になる事多いと思いますがよろしくお願いします。 | ||||||||
|
投稿日時: 2006-05-30 09:46
いわゆる、「初期化子」ですね。 C# の場合は明示的に初期化子を指定する場合のみ使用すれば良いのですが、 VB の場合は配列を示す要素が、通常の括弧 () であるがために、必須だったりします。 (コンストラクタへの引数を示すのか、配列の要素を示すのか区別できないため)
Java にも、「初期化子」は一応ありますよ? (もちろん、J# も) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-05-30 09:46
>Javaとかだとこういう書き方しないので
>とまどいました。 Javaでもできたような。 | ||||||||
|
投稿日時: 2006-05-30 10:27
そうだったんですか。
いや、勉強不足が露呈して恥ずかしいですわw まぁ、これからも頑張りたいと思ってますので 一つよろしくお願いしますね。 |
1