( saxus | 2018. 07. 17., k – 11:23 )

É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™