C#问题维护一些代码

JL.*_*JL. 1 c#

我有以下代码我试图"修复"

foreach (System.IO.DirectoryInfo dir in source.GetDirectories())
    CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name),safeFileNames);
foreach (System.IO.FileInfo file in source.GetFiles())
    if (safeFileNames)
    {
    }
Run Code Online (Sandbox Code Playgroud)

代码继续做更多,但我注意到foreach循环不包含任何{}括号...

以下哪项将解决此问题:

foreach (System.IO.DirectoryInfo dir in source.GetDirectories())
{
    CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name),safeFileNames);
}
foreach (System.IO.FileInfo file in source.GetFiles())
{
    if (safeFileNames)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

要么..........

foreach (System.IO.DirectoryInfo dir in source.GetDirectories())
{
    CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name),safeFileNames);
    foreach (System.IO.FileInfo file in source.GetFiles())
        if (safeFileNames)
        {
        }
}
Run Code Online (Sandbox Code Playgroud)

一旦我修好了外环,我就可以看看清理内环了.

另一方面,没有什么比看到代码逻辑不包含控件边界的显式标记更令我讨厌的了.您在Web上的JS代码示例中看到了很多这样的内容.

谢谢.

Rub*_*ias 7

第一种选择是对的:

foreach (System.IO.DirectoryInfo dir in source.GetDirectories())
{
    CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name),safeFileNames);
}

foreach (System.IO.FileInfo file in source.GetFiles())
{
    if (safeFileNames)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您的块语句不包含任何语句,则只包含{}下一行.