在C#中为多个按钮使用sharpSSH时出错

在C#中为多个按钮使用sharpSSH时出错,c#,sharpssh,C#,Sharpssh,我有两个按钮,连接和发送命令。在第一个按钮中,我创建到服务器的连接,在第二个按钮中,我发送一个命令。代码如下: public void button1_Click(object sender, EventArgs e) { SshExec shell = new SshExec("hostname", "username", "password"); shell.Connect(); } public void button2_Click(object sender,

我有两个按钮,连接发送命令。在第一个按钮中,我创建到服务器的连接,在第二个按钮中,我发送一个命令。代码如下:

public void button1_Click(object sender, EventArgs e)
{
      SshExec shell = new SshExec("hostname", "username", "password");
      shell.Connect();
}

public void button2_Click(object sender, EventArgs e)
{
      shell.RunCommand("ls");
}
现在错误出现在“shell.RunCommand(“ls”);“我正在获取”名称“shell”在当前上下文中不包含”。我刚到C#(仅2天),不太清楚,所以如果有人能帮忙,请告诉我。 我所期望的是没有错误,当按下第二个按钮时,命令将正确发送到终端。
最后,很抱歉代码格式错误,如果需要任何其他信息,请通知我。

现在,您正在
按钮1\u单击
方法中声明变量
shell
。这意味着只有该方法才能“看到”变量并使用它

为了让两个按钮方法都使用该变量,必须在类级别的外部/上方声明该变量

试试这个:

private SshExec shell;

public void button1_Click(object sender, EventArgs e)
{
      shell = new SshExec("hostname", "username", "password");
      shell.Connect();
}

public void button2_Click(object sender, EventArgs e)
{
      shell.RunCommand("ls");
}

现在,您正在
按钮1\u Click
方法中声明变量
shell
。这意味着只有该方法才能“看到”变量并使用它

为了让两个按钮方法都使用该变量,必须在类级别的外部/上方声明该变量

试试这个:

private SshExec shell;

public void button1_Click(object sender, EventArgs e)
{
      shell = new SshExec("hostname", "username", "password");
      shell.Connect();
}

public void button2_Click(object sender, EventArgs e)
{
      shell.RunCommand("ls");
}

变量
shell
是第一个方法的局部变量。它不存在于它之外。将声明移动到类级别。感谢Sami的建议,但由于其他一些限制,我无法将其移动到类级别。有没有其他方法可以让所有人都可以访问这个变量?请解释一下这些约束是什么。因为这是正确的方法。当然,您可以使用单例,但这是非常糟糕的设计。您的变量
shell
是第一个方法的局部变量。它不存在于它之外。将声明移动到类级别。感谢Sami的建议,但由于其他一些限制,我无法将其移动到类级别。有没有其他方法可以让所有人都可以访问这个变量?请解释一下这些约束是什么。因为这是正确的方法。当然你可以玩单人游戏,但这是非常糟糕的设计。