Épp most revieweztem egy ilyet:
foreach (var x in list)
{
+ if (x is Foo foo)
+ {
+ DoSomething();
+ WithFoo(foo);
+ continue;
+ }
+
if (!(x is Bar))
{
throw new SomeException("blabla");
}
var bar = x as Bar;
DoOther();
AndUse(bar);
}
Logikailag teljesen jó a kód, azt is csinálja, ami a taskban le volt írva, működött is, teszten is átment, stb. Mégis rádobtam egy sárgát, hogy írja már át kolléga a switch-cases pattern matchingra, mert szerintem érthetőbb kódot eredményez. Ilyet hogy szűrsz ki automatizáltan? Hogy fogsz kiszűrni előre a design reviewban? Hogy fogja neked kiszűrni az automatizált analízis, ha mégsem annyira kézenfekvő ide a pattern matching?
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™