如何使用来自不同函数的(私有)变量?

How to use (private) variable from a different function?

对于完整的上下文,我正在使用 WinForms,首先,我有一个表格显示我在我的 Hyper-V 管理器上拥有的所有虚拟机,每个按钮都有许多关联的功能,可以对此进行更改数据网格视图。它是这样的:

(忽略名字,都是测试机)

然后右边有那个蓝色小按钮,上面写着 "Snapshot VM",它会打开一个新表格,这样你就可以为它取一个名字,看起来像这样:

我想要的是保存在主窗体(单击按钮之前单击的行)上选择的索引,以便我可以从我的 DLL 中调用函数 snapshotVM,如下所示:

public void snapshotVM(string id, string name)
        {
            if (name == "") powershellFunc("Get-VM | Where { $_.Id –eq ‘" + id + "’ } | Checkpoint-VM");
            else powershellFunc("Get-VM | Where { $_.Id –eq ‘" + id + "’ } | Checkpoint-VM -SnapshotName '" + name + "'");
        }

powershellFunc 只是获取 powershell 命令并执行它们,为了澄清)

所以基本上我需要从一种形式获取 string id,从另一种形式获取 string name,或者在同一形式内从一个函数获取私有变量并在另一个函数中使用它。这就是我的意思:

我需要在下面的按钮中使用 index 变量。有什么办法可以"transfer"到那里吗?

最后,我应该从哪里调用 snapshotVM 函数,如果我应该的话,或者有什么解决方法吗?任何帮助将不胜感激,包括要求澄清,因为我觉得这有点混乱而且我没有正确解释,但我会等待编辑建议。

只需在 class:

上使用私有变量
private string _index;
....
public NewSnapshotVM(...)
{
  ...
  _index = dgv.Rows[...];
}
...
pirvate void button1_Click(...)
{
  // use _index as much as you want
}