我可以使用遞歸方法使用out
參數嗎?如果可能的話,我怎麼用下面的代碼來做到這一點?在C#中使用「out參數」遞歸
private void PrepareDir(out List<_File> listFiles,string root,string dirPath) {
DirectoryInfo dirRoot = new DirectoryInfo(dirPath);
FileInfo [] Files = dirRoot.GetFiles();
dirPath = dirPath.Substring(root.Length);
foreach (FileInfo file in Files) {
_File _file = new _File();
_file.Name = dirPath + "\\" + file.Name;
_file.Path = file.FullName;
_file.Size = file.Length;
listFiles.Add(_file);
}
foreach (DirectoryInfo dir in dirRoot.GetDirectories()) {
PrepareDir(out listFiles, root, dir.FullName);
}
}
private void btnButton1_Click(object sender, EventArgs e) {
List<_File> Files = new List<_File>();
PrepareDir(out Files,currAddress, currAddress);
}
這不應該是'out'參數。 – SLaks 2012-04-25 03:08:42
考慮到你的listFiles參數是通過引用傳遞的(因爲它是一個引用類型),你實際上並沒有重新分配標識符; ergo:'out'沒有必要,代碼可以在你的情況下沒有它。 – payo 2012-04-25 03:09:32
@SLaks,所以不可能使用遞歸方法? – 2012-04-25 03:10:09