Citat:
Ursprungligen inskrivet av
JasPlan
varför krångla till det? han kan väl bara köra:
...
if(condition)
{
gemensamMetod(...);
}
switch (i)
{
case 1:
....
break;
default:
...
}
Den sista var ganska bra, men han nämnde inte att det var något särskilt förhållande, bara att koden var tvungen att användas i varje case. Lägg det efter switch satsen:
switch (i)
{
case 1:
....
break;
default:
...
}
gemensamMetod(...);
Att man har massa logik i switch satser kan även tyda på att man kan bryta ut den logiken till klasser och subklasser. Istället för koden ovan hade du då kunnat använda något liknande detta:
http://pastie.org/3785146
Nu gjorde jag koden ovan i Java, men det är samma princip och nästan samma syntax i C#. =)
Detta gör att du isolerar antalet switchar till ett ställe, dvs där du skapar objekten. Det är bra om du tex har switch satser utspridda lite här och där, som switchat på samma sak, men gör olika saker. För varje ny sak du vill att alla switch-fall ska utföra, så lägger du istället till en metod och lägger beteendet i objektet istället för ett switch-case. Lycka till!