3 回答
TA贡献1936条经验 获得超6个赞
是的,您需要在块外声明 emailFiles,并且 novar
将不起作用(没有一些体操)。
var
需要赋值,因为它使用隐式类型。如果没有值,就无法从中获取类型。
您唯一的其他选择是return
从 try 和 catch 块开始,而不是在方法的末尾。
正如@AdamVincent 指出的那样,您遇到了更大的问题;这是因为一个finally
块总是执行(无论异常或其缺乏)的返回值将始终实际上是Directory.EnumerateFiles(location, "*.msg", SearchOption.AllDirectories)
。您可能打算将其放在catch
块中。
TA贡献1784条经验 获得超9个赞
private IEnumerable<string> GetDirFiles(String location)
{
IEnumerable<string> emailfiles = Enumerable.Empty<string>();
try
{
//Search all directories for txt files
emailfiles = Directory.EnumerateFiles(location, "*.txt", SearchOption.AllDirectories);
}
catch (Exception ex)
{
Console.WriteLine("Message for admins: " + ex.Message);
}
finally
{
textBox1.Clear();
emailfiles = Directory.EnumerateFiles(location, "*.msg", SearchOption.AllDirectories);
}
return emailfiles;
}
您还忘记返回要返回的 IEnumerable 类型
TA贡献1786条经验 获得超11个赞
只是不要使用 var。找出从 Directory.EnumerateFiles(可能是 System.Collections.Generic.IEnumerable)返回的类型。无论如何,这是您将电子邮件文件设置为的唯一类型。然后你可以像这样初始化它:
(任何类型的)电子邮件文件;
在 try 块之外。
- 3 回答
- 0 关注
- 165 浏览
添加回答
举报