2017-11-03 8 views
0

私の問題はこれです。私が使用することができ、オンデマンドで変更できるGlobalVariablesという変数をたくさん持っていたかったのです。むしろ2つの問題が起きていたのに、私は辞書を使いました。最初に1つのタイプしか使用できないということと、後でそれらの変数を複数のクラスで使用したいということです。他のクラスから変数を変数として呼び出すことによって変数を呼び出す

私の次の解決策は、別のクラスを使用して変数を定義し、GlobalStatus.Variableのように使用することでした。しかし今、私はGlobalStatus変数を他の変数で呼び出す必要があるという問題に直面しています。私は言葉にそれを置くことができません(なぜ私はこの質問をしている理由)が、ここでそれがどのように辞書で行われたかです。

変数を格納するクラスを使用してこの動作をエミュレートできますか、または変数を格納する別の方法を使用する必要がありますか?

+1

別の方法で*おそらく*使うべきです。ここで本当に何を達成しようとしていますか?変数のグローバルな投棄地を持つことは、通常は素晴らしい考えではありません。なぜこれが必要ですか? – David

+0

私のコードでは、コード実行時に追跡して変更する必要のある変数(現在は7ですが、増加する可能性があります)が必要です。これらはかなりシンプルですが、通常は真/偽か文字列です。私は彼らに簡単にアクセスする最善の方法は、それらをsomwhereに保管することだと考えました。 –

+0

「静的な」値でなければなりませんか?クラス内で静的なプロパティとして定義し、どこにでもアクセスできます。それが*正しい*アプローチであるかどうかはまだ誰でも推測しています。 "値を格納する必要がある"というのは、物の構造についてはあまり定義していません。ビルドしているものを構築するにはより良い方法があるかもしれませんが、スタックオーバーフローの問題については議論が大きすぎるかもしれません。この質問の範囲では、おそらく単に静的なプロパティを探しているだけでしょうか? – David

答えて

0

タスクは次のとおりです。 名前と値の2つの文字列の配列があります。これは要件と呼ばれます。要件は静的変数としてグローバルクラスに保持されます。クラス内の要件を、新しい配列文字列[2]のような要件パラメータと比較する方法。可能な解決策

  1. グローバルクラスの要件整数の代わりに文字列型として

  2. 使用要件名を使用する配列のいくつかの議論の後に

次に、要件名をグローバル配列のインデックスとして使用できます。

1

デービッドは、あなたには正当な理由がない限り、おそらくグローバル変数を避けたいと指摘していました。私があなただったら、私はおそらく、あなたはこの方法であなたGlobal.Options._Instance.*Your variable or method*

を言ってどこにでもシングルトン_INSTANCE変数を使用してから、このグローバルオプションクラスを呼び出すことが

namespace Global{ 
public class Options{ 
public static Options _Instance; 
void Awake(){ 
if (_Instance == null) 
{ 
_Instance = this; 
} 
} 
}  
} 

のようなものを作るだろう、と述べた

あなたのグローバル変数を整然とした形で保持できる、Globalという名前空間を持つことができます。

正当な理由がない限り、すべてを保持する辞書がなく、変数をクラスに分けることをお勧めします。

+1

他の人たちが指摘しているように、私はおそらくこれを行うためのよりよい方法を探さなければなりませんが、これは私の質問に答えるので、私は答えを受け入れています。 –

+0

通常、変数はそれぞれのクラスでカテゴリに分類されます。どのような変数を作成し、どのような目的に使用しますか? – Doh09

+0

私は答えに同意できません。申し訳ありませんが、あなたから受け入れられたものを削除する必要がありました。ユリSはSkypeでチャットをするのに十分親切で、私の実際の問題と解決策を考え出しました。 –

関連する問題