【问题标题】:Global variable returns null after click event点击事件后全局变量返回null
【发布时间】:2013-09-24 19:33:47
【问题描述】:

我正在用 C# 编写一个客户端-服务器应用程序,但我遇到了一个问题。我有相同形式的 start_server 和 connect_to_server 按钮。单击 connect_to_server 按钮时,我正在尝试将所有连接的客户端添加到列表中。客户端可以添加到 connect_to_server 按钮单击事件的列表中,但是当事件完成时,列表返回 null 或空。我能做些什么?是关于声明列表变量的问题吗?或者我应该实现一些不同的东西?有人可以帮助我吗?谢谢。

private void btnStartClient_Click(object sender, EventArgs e)
{
    try
    {
         richTextBox1.AppendText("Connected to server!" + "\n");
         m_connectedIpAddresses.Add(((IPEndPoint)sock.Client.LocalEndPoint).Address.ToString());
    }
    catch (Exception e1)
    {
            MessageBox.Show("Cannot connect to server");
    }
}

private void btnAnotherButton_Click(object sender, EventArgs e)
{
    int count = m_connectedIpAddresses.Count;
}

'count' 变量返回零。我需要这里连接的客户端总数。

【问题讨论】:

  • 您必须发布代码让我们弄清楚。你会返回列表吗?
  • 请发布代码,因为没有它我们无法回答您的问题。
  • “connect_to_server”按钮是“btnAnotherButton”吗? 'count' 变量什么时候返回 0,在同一个方法中,还是在另一个方法中?
  • 它们是两个不同的点击事件(两个不同的按钮)。已连接的客户端在 btnStartClient_Click 事件中添加到列表中,但在第二次单击事件中,列表似乎为空。
  • 您确定正在调用 btnStartClient_Click() 吗?假设在 AnotherButton 之前单击 Start 并且正确绑定了通风口,那么我看不出为什么 count 会是 0。

标签: c# client-server tcpclient


【解决方案1】:

以下行声明了一个本地变量count

int count = m_connectedIpAddresses.Count;

即使您有一个同名的“全局”变量。尝试将其更改为:

count = m_connectedIpAddresses.Count;

这将设置 class 变量 count 的值。请注意,如果变量在不同的类中声明,您当然必须引用该类。

【讨论】:

    【解决方案2】:

    您是否将计数分配为全局变量?

    如果是,为什么在 btnAnotherButton_Click 中声明 count 为 int

    试试这个

    int  count = 0;
    private void btnStartClient_Click(object sender, EventArgs e)
    {
        try
        {
             richTextBox1.AppendText("Connected to server!" + "\n");
             m_connectedIpAddresses.Add(((IPEndPoint)sock.Client.LocalEndPoint).Address.ToString());
        }
        catch (Exception e1)
        {
                MessageBox.Show("Cannot connect to server");
        }
    }
    
    private void btnAnotherButton_Click(object sender, EventArgs e)
    {
        count = m_connectedIpAddresses.Count;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2014-12-11
      • 2023-03-15
      • 2014-04-12
      • 1970-01-01
      • 2015-07-24
      相关资源
      最近更新 更多