出现错误:“正在设置的类型与标记的值表示形式不兼容。”
string fi = null;
public void reading(object sender, EventArgs e)
{
read_from_folder = folderBrowserDialog1.ShowDialog();
if (read_from_folder == DialogResult.OK)
{
files_in_folder = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
foreach (string fi files_in_folder)
{
string fi_nam = filese_in_folder.ToString();
...
}
}
}
private void button1_Click(object sender, EventArgs e)
{
DicomDirectory cop = new DicomDirectory(fi);
cop.Load(fi);
}
答案 0 :(得分:1)
我同意Frederik,本地fi
隐藏了班级成员。但目前尚不清楚您希望在按钮点击处理程序中对该变量的期望。
因为您正在循环,所以如果您使用类成员fi
,您将只引用最后一个文件。这可能没有意义。如果您在循环中搜索匹配项,并在该匹配项上停止,则取消隐藏类级fi
将是有意义的,并且您拥有的代码将起作用。你有什么具体的fi
?
此外,你所拥有的for循环将无法按列出的那样工作......应该是:
// Missing the 'in'
foreach (string fi in files_in_folder)
*更新*
为了回答您对问题的更改,您在哪里收到此错误?在按钮点击事件?在哪一行?这听起来像DicomDirectory对象的自定义内部错误,无论是什么。
答案 1 :(得分:0)
fi在所显示的函数之外声明,因此它应该在一个函数中具有类范围而不是局部范围。这意味着您应该能够在两个函数函数中使用它。这假设您显示的两个函数属于同一个类(例如“Form1”)。
您可能希望发布包含这些函数的类声明,这将验证它们是否在同一个类中。
答案 2 :(得分:0)
fi将不是本地的,它将成为该类的全球。
你有什么工作。