如何 return 空变量
How to return a variable in a void
我有以下代码:
static void Scan(string path)
{
try{
foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
Console.WriteLine("FILE: " + file);
}
foreach (var dir in Directory.EnumerateDirectories(path)){
Console.WriteLine("DIRECTORY: " + dir);
Scan(dir);
}
}
}
我想停止函数并尽快访问变量
Console.WriteLine("FILE: " + file);
已触发。
我尝试 return 它,但它没有做任何事情,我如何设置一个变量并在找到文件后立即停止该功能?
将您的 void
更改为 string
static string Scan(string path)
.
然后,在你的循环中,return 找到的字符串:
foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
Console.WriteLine("FILE: " + file);
return file;
}
如果未找到任何内容,您还需要 return 在方法末尾添加一个字符串。
如果您正在递归查找与给定模式匹配的文件
static string Scan(string path)
{
try{
foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
Console.WriteLine("FILE: " + file);
return file;
}
foreach (var dir in Directory.EnumerateDirectories(path)){
Console.WriteLine("DIRECTORY: " + dir);
var ret = Scan(dir);
if(ret != null)
return ret;
}
}
return null;
}
如果您要查找特定文件,请将第一个循环替换为
var fpath = Path.Combine(path,"zfsdfsdfsb.txt");
if (File.Exists(fpath))
return fpath;
我有以下代码:
static void Scan(string path)
{
try{
foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
Console.WriteLine("FILE: " + file);
}
foreach (var dir in Directory.EnumerateDirectories(path)){
Console.WriteLine("DIRECTORY: " + dir);
Scan(dir);
}
}
}
我想停止函数并尽快访问变量
Console.WriteLine("FILE: " + file);
已触发。
我尝试 return 它,但它没有做任何事情,我如何设置一个变量并在找到文件后立即停止该功能?
将您的 void
更改为 string
static string Scan(string path)
.
然后,在你的循环中,return 找到的字符串:
foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
Console.WriteLine("FILE: " + file);
return file;
}
如果未找到任何内容,您还需要 return 在方法末尾添加一个字符串。
如果您正在递归查找与给定模式匹配的文件
static string Scan(string path)
{
try{
foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
Console.WriteLine("FILE: " + file);
return file;
}
foreach (var dir in Directory.EnumerateDirectories(path)){
Console.WriteLine("DIRECTORY: " + dir);
var ret = Scan(dir);
if(ret != null)
return ret;
}
}
return null;
}
如果您要查找特定文件,请将第一个循环替换为
var fpath = Path.Combine(path,"zfsdfsdfsb.txt");
if (File.Exists(fpath))
return fpath;