Låt säga att vi har en lista ListView, och en knapp EditItem. Om man dubbelklickar på ett item i listan så ska det redigeras. jag hade nog använt alternativ 1 , eftersom alternativ 2 ser "grötigt" ut Men om man har ett formulär med 4 flikar, och en lista per flik, då blir det ju rätt grötigt med 8 event + 4 funktioner. Personligen föredrar jag nog alt 1, mest för att jag tycker det är ganska snyggt (vad ska metoden heta om den hanterar två events?), och för att om jag behöver göra någonting "special" på ett utav eventen (t.ex. sätta focus?) så slipper jag en if-sats. <b>>en potentiell if-sats, som ...</b> Huva, inte java, det kör ju med interface om jag inte minns helt fel, stora feta if-satser å hemsk kod vill jag minnas.. :/Två events på samma eller anrop till separat funktion?
Vad är då snyggast?
Varsitt event;
<code>
ListView_DoubleClick(...) Handles ListView.DoubleClick
EditTheItem
EditItem_Click(...) Handles EditItem.Click
EditTheItem
EditTheItem
...
</code>
eller
<code>
EditTheItem(...) Handles ListView.DoubleClick, EditItem.Click
...
</code>
Vad tycker ni?
Alt 2. är ju renare och mindre kod, men det är ju knappast omöjligt att det kan bli så att man måste dela upp dem...Sv: Två events på samma eller anrop till separat funktion?
Sv:Två events på samma eller anrop till separat funktion?
Jag kör själv med Alt.1 nu, men jag känner hela tiden att jag vill slå ihop dem...Sv: Två events på samma eller anrop till separat funktion?
ja i det fallet blir det ju mycket kod
Du skulle ju kunna ha en metod som hanterar dina event och sedan använda dig av CommandEventArgs för att skilja ut de olikheter som du ska göra kolla in exemplet här:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.commandeventargs.aspxSv:Två events på samma eller anrop till separat funktion?
Som en bonus så känns det lite mer "rent" att köra på alt 1 eftersom att det blir "refactoriserad" kod eftersom att "händelsehanteringen" ligger i egna funktioner och logiken i egna funktioner. Visserligen fler metoder, men mindre kod i varje metod. (Vilket man bör sträva efter, man slipper ju t.ex. en potentiell if-sats, som skapar onödiga beroenden i metoden, med alt 1)Sv: Två events på samma eller anrop till separat funktion?
Mmm, men det är just det jag menar, i många av de här fallen är beteendet helt identiskt. Det är alltså "samma logiska händelse" fast på två vägar. Det känns lite som att Alt 1. lika väl kunde göras om till:
<code>
ListView_DoubleClick(...) Handles ListView.DoubleClick
EditTheItemViaDoubleClick
EditItem_Click(...) Handles EditItem.Click
EditTheItemViaButtonClick
EditTheItemViaDoubleClick
EditTheItem
EditTheItemViaButtonClick
EditTheItem
EditTheItem
...
</code>
Är ni med på vad jag menar? Att ha fler logiska "lager", om vi nu säger att vi kallar det så, utan att de faktiskt gör något känns lite icke-yagni.
Nu var det flera år sen jag använde det, men kollar man på inspirationen (som jag gissar i huvudsak kommer från?) från Java så är det ju egentligen helt logiskt att göra enl. alt 2. Sv:Två events på samma eller anrop till separat funktion?