Är alltså enda skillnaden datatypen i signaturen? Du använder alltså inte "e" nånstans i koden?
I så fall borde du kunna byta ut respektive signatur till:
(object sender, EventArgs e, int CatId)
Då bägge klasser ändå ärver från den.
2 svar · 230 visningar · startad av DavidB
Tjena
Har följande två funktioner som jag kör från två olika ställen i min kod. Funktionerna är identiska med en liten skillnad (fet markerad):
private void BuildDg(object sender, [b]DataGridCommandEventArgs[/b] e, int CatId){
// massa kod
e.Item.Cells[0].Controls.Add(dg);
}
private void BuildDg1(object sender, [b]DataGridItemEventArgs[/b] e, int CatId){
// massa kod
e.Item.Cells[0].Controls.Add(dg);
}
Det känns ju ganska onödigt att ha samma kod på två olika ställen så jag undrar om det går på nåt sätt att få ihop dessa två till en funktion?
Är alltså enda skillnaden datatypen i signaturen? Du använder alltså inte "e" nånstans i koden?
I så fall borde du kunna byta ut respektive signatur till:
(object sender, EventArgs e, int CatId)
Då bägge klasser ändå ärver från den.
Fungerade inte, jag använder e för att trycka in en datagrid i en cell.
e.Item.Cells[0].Controls.Add(dg);
Funderade lite och kom fram till att det kanske går att göra någonting liknande detta
private void BuildDg(object sender, [b]DataGridCommandEventArgs ce,DataGridItemEventArgs ie[/b], int CatId){
// massa kod
if(ce == null){
ie.Item.Cells[0].Controls.Add(dg);
} else if(ie == null){
ce.Item.Cells[0].Controls.Add(dg);
}
}
Nu e dock grejen den att jag vet inte hur jag skall anropa funktionen, går det att göra så att man slipper ange båda EventArgs:en så den kör med det argument som är angivet?