Hej Lite svårt att följa med tyckte jag nog det var...Kod i class eller form
Jag håller på med ett C# program som öppnar en excelfil och kontrollerar om bladen uppfyller vissa krav. Detta presenteras sedan i en listview där raderna blir röda om de är fel.
Nu undrar jag följande.
Jag har en Button i formuläret som heter Kontrollera.. denna loopar igenom listview och kontrollerar om varje rad uppfyller vissa krav. (Varje rad motsvarar ett blad i excelfilen)
Till detta öppnas ett fönster där man kan följa proceduren med en progressbar.
Koden för att öppna och kontrollera excelfilen ligger i en class-fil (metod). Men koden för att loopa igenom listview ligger direkt under Button (btn_Check).
Vad är mest korrekt, att låta den ligga direkt under Button eller flytta allt till en Method i en class-fil.
Ska jag flytta den till en Class så måste jag ju skicka in en Listview till den metoden, och då är frågan om detta är onödigt i fråga om minnesanvändning?
Fråga gärna om ni inte va med, lite svårt att beskriva.
MVH
AndersSv: Kod i class eller form
Jag brukar göra följande, om koden i din code-behind fil endast innehåller information som är intressant för ditt presentationslager så kan den ligga kvar där, om den däremot innehåller kod som är intressant för andra än just UI så lägger jag den i min domänklass eller i en servicesklass.
Så i ditt fall så hade jag nog haft kvar loopen i din button_click-klass. Men kontrollen om "raden" (som i mitt fall är ett objekt) hade legat i klassen som raden motsvarar.
Att flytta med en listview till en annan klass är inga problem minnesmässigt, då man inte flyttar med hela listviewn utan bara en referens till listviewn, så du har bara 1 listview i ditt minne oberoende av hur många metoder som du skickar den till. Däremot så skall man ställa sig frågan om en listview (som är UI-specifik) har något att göra i din klass?
För att ytterligare förbättra din kod så bör du inte lägga funktioner i code-behind filen, utan använda dig ab MVC-mönstert som gör ditt UI mycket enklare att testa med UnitTester. Använder du dig inte av Unittester eller tycker MVC är komplicerat så lägg din kod i din code-behind och kör på med det och se glad ut :)
- M