在另一个按钮中使用局部变量

时间:2010-09-22 18:10:31

标签: c# string file public

出现错误:“正在设置的类型与标记的值表示形式不兼容。”

  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);
    } 

3 个答案:

答案 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将不是本地的,它将成为该类的全球。

你有什么工作。