C#-将'foreach'中的变量传递到其他文件

时间:2018-08-10 08:51:47

标签: c# forms variables public

在我的项目中,我有2个文件:

  • Form1.cs
  • Form2.cs

Form1.cs中,我有以下代码:

foreach (var file in files)
{

    File.Copy(file, tempPath + @"\" + System.IO.Path.GetFileName(file));
    if (File.Exists(file))
      {
         //here I want to use a custom MsgBox with a checkbox (form2)
      }
}

Form2.cs中,我创建了一个自定义MsgBox,我要在其中使用显示的文本中的最后一个文件名(文件中的字符串文件)。

它说“文件”不可用。如何在两种表格之间共享变量?我知道我必须将其声明为公共,但是当我尝试这样做时,它会弄乱我的代码。

1 个答案:

答案 0 :(得分:0)

一切都取决于上下文;除了static字段外,没有一个公共的共享全局上下文,并且 please 请勿为此滥用它们。没有单一的“我的form1 /我的form2”-您可以有0个,1个或很多-并且代码无法猜测您的意图。

最好的做法可能是使Form2的{​​{1}}的 instance (请重命名!),以便执行类似的操作。 :

refresh()

但是,这意味着您仅实际上显示 last void Refresh(Form2 form) { var files = <mydirectory> foreach (string file in files) { form.Text = file; } } 值。所以;您想与不是最后一个的其他人做什么?是其他形式的多个实例吗? 我们不知道!