C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: VBにて。変数名を合成する方法(?)


(過去ログ 74 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■43295 / inTopicNo.1)  VBにて。変数名を合成する方法(?)
  
□投稿者/ とび (1回)-(2009/11/04(Wed) 19:10:53)

分類:[VB.NET/VB2005 以降] 

はじめまして。VisualStudio2008を利用しています。
うまく説明できないのですが、
Private Sub Method(ByVal Value As String)
 Dim Hoge & Value As Integer
 Hoge & Value = TextBox & Value.Text
 ProgressBar & Value.Maximum = TextBox & Value.Text
End Sub
そしてValueを入力させる

のように、取得したValueを元に使いたいのですが、やり方がよくわかりません。
検索ワードすらわからないので、検索ワードでもとにかく教えてもらえれば幸いです。
引用返信 編集キー/
■43296 / inTopicNo.2)  Re[1]: VBにて。変数名を合成する方法(?)
□投稿者/ まりも (6回)-(2009/11/04(Wed) 19:57:40)
メソッドローカルの変数についてはそういう方法はないと思います。

何をやりたいのかがよくわかりませんが、
Dictionaryクラスを使うと、似た雰囲気のことはできるかもしれません。


TextBoxとかはクラス変数だと思いますので、リフレクションを使うと取得できます。
Type.GetFieldメソッドなどを使えばいいです。

ただこっちも、利用方法にもよりますが、
Dictionaryを使ったほうが、よりよいかもしれません。

TextBoxの名前を一文字変えると変えて動かなくなるようだと、
修正した人がびっくりしますしね。
引用返信 編集キー/
■43297 / inTopicNo.3)  Re[1]: VBにて。変数名を合成する方法(?)
□投稿者/ ヴァン (31回)-(2009/11/04(Wed) 20:24:49)
No43295 (とび さん) に返信
> はじめまして。VisualStudio2008を利用しています。
> うまく説明できないのですが、
> Private Sub Method(ByVal Value As String)
>  Dim Hoge & Value As Integer
>  Hoge & Value = TextBox & Value.Text
>  ProgressBar & Value.Maximum = TextBox & Value.Text
> End Sub
> そしてValueを入力させる
>
> のように、取得したValueを元に使いたいのですが、やり方がよくわかりません。
> 検索ワードすらわからないので、検索ワードでもとにかく教えてもらえれば幸いです。

何をしたいがためにこの様な事をやろうとしてるのですか?

引用返信 編集キー/
■43299 / inTopicNo.4)  Re[1]: VBにて。変数名を合成する方法(?)
□投稿者/ やじゅ (1404回)-(2009/11/04(Wed) 21:46:40)
やじゅ さんの Web サイト
No43295 (とび さん) に返信

Dim Hoge & Value As Integer
これは、Valueでつなげる必要性はないよね。

コントロールは、Controlsプロパティあたり使えば出来るかも
5.特別な方法
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm

引用返信 編集キー/
■43303 / inTopicNo.5)  Re[2]: VBにて。変数名を合成する方法(?)
□投稿者/ とび (2回)-(2009/11/04(Wed) 22:53:42)
作ろうとしているのは、
http://i35.tinypic.com/2gtrd5c.png
このようなものです。 同じ処理が14個並び、コードも同じようなものが続くので、なんとかしたいと思い調べました。
なので本当はValueを入力させるのではなく、再生、停止、閉じるなどのメゾットに1〜14の引数を与え、それぞれの処理をさせるという感じです。
これを実現させるのには別のやり方が好ましいのでしょうか?
引用返信 編集キー/
■43305 / inTopicNo.6)  Re[3]: VBにて。変数名を合成する方法(?)
□投稿者/ まりも (7回)-(2009/11/04(Wed) 23:29:20)
No43303 (とび さん) に返信
> 作ろうとしているのは、
> http://i35.tinypic.com/2gtrd5c.png
> このようなものです。 同じ処理が14個並び、コードも同じようなものが続くので、なんとかしたいと思い調べました。
> なので本当はValueを入力させるのではなく、再生、停止、閉じるなどのメゾットに1〜14の引数を与え、それぞれの処理をさせるという感じです。
> これを実現させるのには別のやり方が好ましいのでしょうか?

初期処理で配列やListクラスなどに登録しておく、などというのはどうでしょうか?

一つ一つのコントロールのセットをユーザーコントロールにまとめ、その配列を持つようにすると、もっとよいかもしれません。
引用返信 編集キー/
■43306 / inTopicNo.7)  Re[3]: VBにて。変数名を合成する方法(?)
□投稿者/ まさる (114回)-(2009/11/05(Thu) 07:32:00)
まさる さんの Web サイト
No43303 (とび さん) に返信
> 作ろうとしているのは、
> http://i35.tinypic.com/2gtrd5c.png
> このようなものです。 同じ処理が14個並び、コードも同じようなものが続くので、なんとかしたいと思い調べました。
> なので本当はValueを入力させるのではなく、再生、停止、閉じるなどのメゾットに1〜14の引数を与え、それぞれの処理をさせるという感じです。
> これを実現させるのには別のやり方が好ましいのでしょうか?

14個のプレイヤー風のものは、ご自分で作成されたユーザーコントロールですか?
そうだと仮定して、そのユーザーコントロールに再生、停止、閉じる等の処理を紐付けたいのですよね。

であるなら、Strategyパターンの出番かと思います。

Wikipedia:Strategyパターン
http://ja.wikipedia.org/wiki/Strategy_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

簡単に説明すると、

1.プレイヤーの再生、停止、閉じる等のメソッドをもつインターフェース(例えばIPlayer)を作成します。

2.IPlayerを実装したそれぞれの処理を行うクラス(例えばConcretePlayer)を作成します。

3.ユーザーコントロールには、IPlayer型のプロパティを用意し、コンストラクタなどで、そのプロパティ用のPrivateフィールドに、2.で作成したConcretePlayerのインスタンスを設定します。

といった感じです。

この方法の利点として、それぞれのコントロールに必要な処理を持たせることができる、あとで処理を変更したいときにクラスをすげ変えることで対応できる、などがあります。
引用返信 編集キー/
■43343 / inTopicNo.8)  Re[4]: VBにて。変数名を合成する方法(?)
□投稿者/ とび (3回)-(2009/11/06(Fri) 07:06:49)
皆様、ありがとうございました。
今の知識では理解し難いところもありますが、調べてなんとか実装していきたいと思います。
それでは。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -