Ich habe diesen Code:ReSharper kann nicht unerreichbaren Code finden
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 */
}
die ReSharper vereinfacht durch die redundante Entfernen (weil Allways true
) Ausdruck == null
und durch die if
-Aussage etwas Umkehren ähnlich wie:
if ((datasetMetadataPunktort.Length == 5) && (datasetMetadataFlurstueck.Length == 11))
return
Aber für mich scheint selbst diese Prüfung bedeutungslos und kann leicht weggelassen werden, da die Bedingung immer wahr ist. Also frage ich mich, warum ReSharper den veralteten Check gegen null
erkennt, aber nicht für den Rest.
Fehle ich jeden Fall, in dem die Überprüfung fehlschlägt?
Wie soll Resharper wissen, welche Werte die Länge zur Laufzeit haben wird? – Alex
@ j0ey_wh Hmmm, schöner Punkt.Es kann nicht wissen, ob die Immobilie unveränderlich ist, das ist es was du meinst, oder? – HimBromBeere
Vielleicht, wenn Sie eine Variable der Länge vorstellen wird es bemerken? – Euphoric