Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在另一个按钮中使用局部变量_C#_String_File_Public - Fatal编程技术网

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

C# 在另一个按钮中使用局部变量,c#,string,file,public,C#,String,File,Public,出现错误:“正在设置的类型与标记的值表示形式不兼容。” fi在所示函数之外声明,因此它在一个函数中应该具有类作用域而不是局部作用域。这意味着您应该能够在两个函数中使用它。这假设您显示的两个函数在同一个类中(例如“Form1”) 您可能希望发布这些函数也包含在其中的类声明,这将验证它们是否在同一个类中。fi将不是本地的,而是该类的全局的 你所拥有的将起作用。我同意弗雷德里克的观点,本地fi隐藏了班级成员。但不清楚在按钮单击处理程序中,该变量中会出现什么 因为您正在循环,如果使用类成员fi,则只会引

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


fi在所示函数之外声明,因此它在一个函数中应该具有类作用域而不是局部作用域。这意味着您应该能够在两个函数中使用它。这假设您显示的两个函数在同一个类中(例如“Form1”)


您可能希望发布这些函数也包含在其中的类声明,这将验证它们是否在同一个类中。

fi将不是本地的,而是该类的全局的


你所拥有的将起作用。

我同意弗雷德里克的观点,本地
fi
隐藏了班级成员。但不清楚在按钮单击处理程序中,该变量中会出现什么

因为您正在循环,如果使用类成员
fi
,则只会引用最后一个文件。这可能没有道理。如果您正在搜索一个匹配项,比如在循环中,并在该匹配项上停止,那么取消隐藏类级别的
fi
将是有意义的,并且您拥有的代码将起作用。您具体想用
fi
做什么

此外,您的for循环将无法按所列方式工作。。。应该是:

//  Missing the 'in'
foreach (string fi in files_in_folder)

*更新*
在回答您在问题中的更改时,您从何处获得此错误?在按钮点击事件中?在哪一条线上?这听起来像是DicomDirectory对象的自定义内部错误,不管是什么。

如果字符串“fi”是在方法外部定义的,则它不是局部变量。如果这些to方法在同一个类中,并且“fi”是该类的成员,那么这应该可以工作。不清楚fi是在哪里定义的。也许你应该粘贴更多更清晰的代码:)发布一些更清晰的代码和准确的错误消息(如果你有)。乍一看,类成员变量定义为
stringfi
但是您也在
foreach
循环中将
字符串fi
用作本地变量。该局部变量将隐藏成员变量,要求您在提供竞争变量名称的方法中将成员变量引用为
this.fi
。您可以选择一个答案吗?或者,如果您提出了自己的答案,您可以发布该答案并将其标记为答案吗?谢谢什么是DICOM目录?这是代码中的一行还是第三方对象?
//  Missing the 'in'
foreach (string fi in files_in_folder)