我有这个代码:
Assert.IsTrue(datasetMetadata1 != null && datasetMetadata1.Length == 5);
Assert.IsTrue(datasetMetadata2 != null && datasetMetadata2 .Length == 11);
if ((datasetMetadata1 == null || datasetMetadata1.Length != 5) ||
(datasetMetadata2 == null || datasetMetadata2 .Length != 11)
{
/* do something */
}
ReSharper 通过删除多余的(因为 allways true
)表达式== null
和将if
-statement 反转为类似于以下内容来简化它:
if ((datasetMetadataPunktort.Length == 5) && (datasetMetadataFlurstueck.Length == 11))
return
但是对我来说,即使这个检查似乎也没有意义,并且很容易被忽略,因为条件总是正确的。所以我想知道为什么 ReSharper 会检测到过时的检查null
而不是其余的检查。
我错过了任何检查失败的情况吗?