2011-08-08 8 views
0

私は、グローバル変数 "gsCurrentlyIn"として定義された13のリージョンの1つの間を移動するゲームを構築しています。リージョン1 ")を更新する必要があります。これはグローバル変数としても定義されています(人口は" giRegion1Pop "、人気は" giRegion1PlayerPercent "など)。グローバル変数。このプロジェクトに最も近い方法

ここで問題となるのは、その領域の適切な名前のグローバル変数を更新することです。

だから我々は持っている:

gsCurrentlyIn = "Region1" 

を、それが文字列でない変数の実際の名前になりますので、我々は呼び出すための正しいグローバル変数の名前を構築するカント。

"gi" + gsCurrentlyIn + "Pop" = 4 wont work. 

私はそれをやっている100奇数のグローバル変数の方法よりも良いことがありますか?

私は、それぞれの変数に対して膨大なif/then caseステートメントを持つことができます。

一部の人々は反射を提案しましたが、あまりにも混乱していることがわかりました。それが唯一の方法なら、誰かが私のためにそれを黙らせることができるかもしれません。しかし、私はそれが複雑であると信じることは難しいと思う。

+0

私はタグがvbの代わりにvb.netであるべきだと思いますか? (リフレクションへの参照があるので) – Eddy

答えて

0

すべての異なる変数ではなく、配列またはコレクション/ディクショナリを使用します。現在の領域は、配列内の適切なインデックスを指す番号よりも大きいです。

+0

hmm - 多分パブリックな多次元配列 - それに一撃して見てください。どうも – dMO

0

多次元配列を使用しないでください。 Population、Popularityなどクラスを作成します。次に、コレクション(List:Of))または各クラスのインスタンスを保持する配列を使用します領域。

関連する問題