私のコードは非常に簡単です。ファーストクラスのボタンをクリックすると、マスターとアリーナの2つのインスタンスが作成されます。アリーナは両方のマスターインスタンスから情報を受け取る必要があり、アリーナは各マスターインスタンスに情報を送信する必要がありますが、情報は両方のマスターインスタンスで同じではありません。C# - インスタンス間で情報を共有
//When I press a button...
master = new Master(ip1.Text);
master.Show();
slave = new Master(ip2.Text);
slave.Show();
arena = new Arena(master,slave);
arena.Show();
ARENAのCLASS:
private Master master;
private Master slave;
public Arena(Master master,Master slave)
{
InitializeComponent();
this.master = master;
this.slave = slave;
}
私の質問は:
インスタンスのマスターとスレーブが前に作成されているので、私は新しいアリーナ(マスター、スレーブ)を作成することができます。しかし、私はのようなものを使用する必要があります:
master = new Master(ip1.Text,arena);
master.Show();
slave = new Master(ip2.Text,arena);
slave.Show();
arena = new Arena(master,slave);
arena.Show();
をしかし、私は、マスタとスレーブのインスタンスが作成されるとき、アリーナ= nullのため、これを行う傾けます。 固定!
EDIT:
私は、引数としてインスタンスマスターとスレーブを受信アリーナと呼ばれるインスタンスを持っています。
private Master master;
private Master slave;
public Arena(Master master,Master slave)
{
InitializeComponent();
this.master = master;
this.slave = slave;
}
私の質問は、どのように私はマスターとスレーブの異なる値を返すことができます。たとえば :
public int missao_enviada;
private void btn_enviar_Click(object sender, EventArgs e)
{
missao_enviada = 1;
}
public int enviou_missao()
{
return missao_enviada;
}
しかし、私は唯一のマスターインスタンスをマスターとスレーブのインスタンスをマスターしないようにmissao_enviadaを返したいです。
これを行う方法はありますか?
単純な事実ですが、両方のコンストラクタを呼び出すことはできず、すべての依存関係をこのように満たすことはできません。 – Charleh
はいの2つのクラス定義のいずれかに値を設定するメソッドを追加するか、またはプロパティを直接設定する必要があります。それは例だった。私はマスターとスレーブにインスタンスのアリーナを含めるので、私は関数を使用することができます。 –
あなたの解決策は、これらのプロパティのゲッター/セッターを 'Arena'(またはそれらを設定するメソッド)に追加することです。 – Charleh