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)