我遇到了这个遗留代码:
public static bool RemoveTempFiles()
{
bool RetVal = true;
RetVal &= RemoveFile(@"\", "*.csv");
RetVal &= RemoveFile(@"\", "*.xml");
RetVal &= RemoveFile(@"\", "*.txt");
RetVal &= RemoveFile(@"\", "*.tmp");
RetVal &= RemoveFile(GetDataPath(), "*.csv");
RetVal &= RemoveFile(GetDataPath(), "*.xml");
RetVal &= RemoveFile(GetDataPath(), "*.txt");
RetVal &= RemoveFile(GetDataPath(), "*.tmp");
return RetVal;
}
Run Code Online (Sandbox Code Playgroud)
...而且我不熟悉"&="运算符.
RemoveFile()删除所有提供扩展名的文件,除非遇到异常,否则返回true.
因为我不知道"&="我不知道是否有任何失败导致RemoveTempFiles()返回false或者如果最后一个(对于*.tmp文件)失败,它只会返回false(这就是我的意思期待代码乍一看,但这没有意义).
如果任何被调用的函数返回false,则此代码将返回false.
每一行都像写作一样
retVal = retVal & RemoveFiles; // Or &&!
Run Code Online (Sandbox Code Playgroud)
显然,如果RemoveFiles返回false,则返回false,然后在此之后将始终返回false.
有关详细信息,请参阅MSDN.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |