首先,我最熟悉Java编码。我正在用C#创建一个应用程序作为学习工具。在这个应用程序中,我通过Click事件方法调用方法。
private void btnViewFile_Click(object sender, EventArgs e) {
GetFileNames();
lblOutputPath.Text = sb;
}
private StringBuilder GetFileNames() {
StringBuilder sb = new StringBuilder();
string[] fileNames = Directory.GetFiles(Dir);
foreach (string s in fileNames)
sb.Append(s);
return sb;
}
我想打破从Click方法中获取目录中每个文件的FileNames的代码,以使其更加模块化。我将获得StringBuilder对象的值,然后将其传递回Click事件方法。
无论如何,我会用Java来做这件事。这是一个有效的方法还是有更好的方法来做到这一点?
答案 0 :(得分:5)
我认为这就是你要做的事情:
private void btnViewFile_Click(object sender, EventArgs e)
{
lblOutputPath.Text = GetFileNames().ToString();
}
private StringBuilder GetFileNames()
{
StringBuilder sb = new StringBuilder();
string[] fileNames = Directory.GetFiles(Dir);
foreach (string s in fileNames)
sb.Append(s);
return sb;
}
答案 1 :(得分:2)
您的GetFileNames()
方法已经返回了一个您忽略的值,因此您只需将GetFileNames()
的返回值分配给标签的文本属性。
修改:重新阅读您的问题后,我有点困惑。是否要在实际单击按钮的单击事件之前将GetFileNames()的值赋值给单击事件,或者在单击时使用结果?您可以使用以下命令在单击之前将值分配给按钮:
btnViewFiles.CommandArgument = GetFileNames().ToString();
然后,当您单击按钮时,您可以使用以下命令读取CommandArgument:
Button btn = (Button)(sender);
lblOutputPath.Text = btn.CommandArgument;