我试图看看是否有更好的方法来编写以下内容:
if ((DirectoryDetailsPath == null) & (FileDetailsPath == null))
{
Console.WriteLine("Error: Path for 'Directory' or 'File' has to be specified.");
}
不使用Bitwise“&”运营商。我会使用逻辑运算符,但由于短路,我无法评估这两个字段。
如果两个字段都为“null”,我只想看到错误。
由于
答案 0 :(得分:2)
如果两个字段均为“null”,我只希望看到错误。
然后尝试使用&&
:
if ((DirectoryDetailsPath == null) && (FileDetailsPath == null))
{
Console.WriteLine("Error: Path for 'Directory' or 'File' has to be specified.");
}
更多信息:
如果第一个条件为假,上述解决方案将会短路。如果两个值都为空,这仍然满足只写输出的要求。
答案 1 :(得分:2)
如果您真的必须评估这两个条件并且不想使用按位运算符,请在if
语句之外执行。
bool isDirectoryDetailsPathNull = DirectoryDetailsPath == null;
bool isFileDetailsPathNull = FileDetailsPath == null;
if (isDirectoryDetailsPathNull && isFileDetailsPathNull)
{
Console.WriteLine("Error: Path for 'Directory' or 'File' has to be specified.");
}
然而,这没有任何意义。编译器可能会决定内联变量,有效地为你提供这个,这就是你所说的你不想要的。
if ((DirectoryDetailsPath == null) && (FileDetailsPath == null))
{
Console.WriteLine("Error: Path for 'Directory' or 'File' has to be specified.");
}