C# - 在实例之间共享信息

标签 c# instances

我的代码很简单。当我单击第一类中的一个按钮时,它会创建两个 Master 实例和一个 Arena 实例。 Arena 需要从两个 Master 实例接收信息,Arena 需要向每个 Master 实例发送信息,但是两个 Master 实例的信息并不相同。

//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();

竞技场类:

private Master master;
private Master slave;

public Arena(Master master,Master slave)
{
    InitializeComponent();
    this.master = master;
    this.slave = slave;

}

我的问题是:

我可以创建新的 Arena(master,slave) 因为实例 master 和 slave 是之前创建的。但我需要使用类似的东西:

master = new Master(ip1.Text,arena);
master.Show();

slave = new Master(ip2.Text,arena);
slave.Show();

arena = new Arena(master,slave);
arena.Show();

但我不能这样做,因为当创建主从实例时,arena = null。 已修复!!

编辑:

我有一个名为 Arena 的实例,它接收实例 Master 和 Slave 作为参数。

    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 返回给 Master 主实例而不是 Master 从实例。

有办法吗?

最佳答案

这是你想要的东西吗?

    arena = new Arena();
    master = new Master(ip1.Text,arena);
    master.Show();

    slave = new Master(ip2.Text,arena);
    slave.Show();

    arena.SetMaster(master);
    arena.SetSlave(slave);

    arena.Show();

根据评论(在 Arena 类中):

// Empty constructor
public Arena()
{
    InitializeComponent();
    // Do your stuff...
}

public void SetMaster(Master m) // Or use property; create similar for SetSlave
{
  master = m;
}

关于C# - 在实例之间共享信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38244236/

相关文章:

c# - 无法在 Visual Studio 2017 Enterprise MSTest Selenium 单元测试 C# 中找到/添加订购的测试项目到我的项目

c# - 有趣的事件 "Dispose"行为

mysql - 谷歌云 SQL : Can't add authorized application

c++ - 使函数返回具有不同属性的东西

java - 在 java 中使用 Bouncy CaSTLe 进行 block 式 RSA 加密

c# - 无需签名即可部署 ClickOnce 应用程序

Java ServerSocket 多个监听实例

php - 在 OO PHP 中加载实例的有用性?

java - Java中将类限制为一定数量的对象

c# - ASP NET Core 中的 Microsoft.SqlServer.Types