c# - C# - 将'foreach'中的变量传递给其他文件
问题描述
在我的项目中,我有 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 个表单之间共享变量?我知道我必须将其公开,但是当我尝试这样做时,它会弄乱我的代码。
解决方案
一切都取决于上下文;static
除了字段之外,没有单一的通用共享全局上下文,请不要为此滥用它们。没有单一的“我的表单 1 / 我的表单 2”——你可以有 0、1 或多个——并且代码无法猜测你的意图。
最好的办法可能是使(请重命名它!)的实例可用于该方法,以便您可以执行以下操作:Form2
refresh()
void Refresh(Form2 form)
{
var files = <mydirectory>
foreach (string file in files)
{
form.Text = file;
}
}
但是,这意味着您实际上只显示最后一个 file
值。所以; 你想对其他不是最后一个的人做什么?是其他形式的多个实例吗?我们不知道!
推荐阅读
- php - 更新 csv 文件内容后读取 csv 文件返回错误数据
- ember.js - 如何检测 EmberJS 中的一段时间不活动?
- java - 如何对 LinkedList 的字符串数据进行排序
- java - Spring Boot 模块中的“错误:无法找到或加载主类”
- ruby-on-rails - Rails 5:找不到具有友好ID的记录
- docker - Windows docker 容器中的 jfrog-cli - x509:由未知机构签署的证书
- angular - 如何使用角度材料将 Mat-table 中的选定行数据绑定到 angular 中的弹出输入字段
- google-oauth - 谷歌 oauth 和刷新令牌混淆/问题
- unity3d - 如何在垂直轴上移动轭
- vue.js - 必须在一个页面上添加 3 个组件