Graph クラスを作成しました。配信ネットワークをシミュレートしたいと考えています。グラフは 100% 動作します。しかし、すべてのアプリケーションで同じ構造体/クラスを使用したい! 例: シミュレーションを表示する Form1 がありますが、(たとえば) ノードを挿入したいのですが、Form2 で実行したいのです! データは常に同じクラスにあるため、Graph インスタンスをグローバルにすることはできますが、C# はグローバル変数を取りません。それで、どうすればこれを解決できますか?何か案は?ありがとうございました!
5 に答える
5
静的クラスを作成します。グローバル アクセスが必要な変数は、そのクラス内に配置します。
さらに良いアイデアは、Singletonオブジェクトを使用して、グローバルにアクセス可能なオブジェクトを表すことです。
于 2009-12-29T18:24:39.223 に答える
4
コンストラクターでフォームにグラフへの参照を与えます。
Graph g = new Graph();
Form1 f1 = new Form1(g);
Form2 f2 = new Form2(g);
次に、両方のフォームが同じグラフで機能します。
于 2009-12-29T18:23:48.663 に答える
2
Graph インスタンスを静的クラスの public static メンバーにし、実用的なすべての目的のために、グローバルを持っています。
于 2009-12-29T18:24:22.063 に答える
2
共通のオブジェクトを持つための 1 つの可能なアプローチとして、Singleton パターンを見てください。
于 2009-12-29T18:24:30.863 に答える
0
C# には、このための静的フィールドがあります。静的フィールドと組み合わせて SIngleton パターンを使用できます。ただし、アプリケーション全体のオブジェクトを誤用すると、設計が機能しなくなる可能性があることを忘れないでください。
于 2009-12-29T18:23:59.833 に答える