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

Posted

技术标签:

【中文标题】C# - 将\'foreach\'中的变量传递给其他文件【英文标题】:C# - Passing variables in 'foreach' to other fileC# - 将'foreach'中的变量传递给其他文件 【发布时间】:2019-01-17 20:07:02 【问题描述】:

在我的项目中,我有 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,我想在显示的文本中使用最后一个文件名(文件中的字符串文件)。

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

【问题讨论】:

您的文件可以有多条记录吗?你的标签是单一的,完全令人困惑 我只想在我的其他文件中使用“字符串文件”.. 多少?你的 foreach 可以返回多个? 也许我可以告诉你更多关于我的想法。在 foreach 中,文件被复制。如果文件已经存在,则会弹出一个自定义 MessageBox,并且在 MessageBox-text 中我想使用已经存在的文件的名称。 用适当的要求更新您的问题并编写您尝试过的代码,而不是人们可能会帮助您。 【参考方案1】:

一切都取决于上下文;除了static 字段外,没有单一的通用共享全局上下文,不要为此滥用它们。没有单一的“我的表单 1 / 我的表单 2”——你可以有 0 个、1 个或多个——而且代码无法猜测你的意图。

最好的办法可能是让Form2实例(请重命名它!)可用于refresh() 方法,以便您可以执行以下操作:

void Refresh(Form2 form)

   var files = <mydirectory>

   foreach (string file in files)
   
      form.Text = file;
   

然而,这将意味着您只实际上显示 last file 值。所以;你想对其他不是最后一个的人做什么?是其他形式的多个实例吗? 我们不知道!

【讨论】:

感谢您的宝贵时间。我更新了我的问题,希望你能理解我的意图。 @loyd 我不认为这会改变我的答案......对于刷新方法可以访问任何特定表单,刷新方法必须创建表单,或者现有的表单需要使其可用... 好吧.. 我试着多读一点。由于这个问题对其他人没有意义,您可以将其删除,我认为它对其他人没有帮助.. 感谢您的时间:)

以上是关于C# - 将'foreach'中的变量传递给其他文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量从 ViewController 类传递给其他结构?

如何通过 MySql 传递带有撇号的 C# 变量

将 DataGridView 单元格 BackColor 传递给变量以供以后在 c# 中使用

将属性本身传递给 C# 中的参数

将变量传递给存储过程,c#

尝试将布尔 C# 变量传递给 javascript 变量并将其设置为 true