Hur döper ni era variabler av ui-kontroller codebehind som ligger t.ex. i en gridview?
protected void gridView_ItemDataBound(...)
{
Label labelFirstName = (Label)e.Item...
eller
Label firstName = (Label)e.Item...
eller på något helt annat sätt?
}
Generella variabelnamn är något jag alltid strävar efter och därför försöker jag använda namn som inte berättar om datatypen. Det går inte alltid så bra som ni ser här nedan. ;)
Dum fråga: Rent generellt, är det tokigt att casta objekten till lägsta gemensamma nämnare (interface) istället för att casta om till den typ som kontrollen är av? Jag ser inte riktigt vad man skulle vinna på att göra så men tänkte fråga ändå.
Dum fråga: Rent generellt, är det tokigt att casta objekten till lägsta gemensamma nämnare (interface) istället för att casta om till den typ som kontrollen är av?
Du ska alltid sträva efter att minska beroenden, vilket ofta innebär användande av interfaces. Men att just casta om dom...? Dom är väl redan av den typen, då klassen har implementerat gränssnittet - så en cast ska inte vara nödvändig. Ett cast åt andra hållet kan ju aldrig garantera att interface-instansen faktiskt är en instans av EnKlass. Ta emot referenserna i den form du behöver dom;
interface IYourInterface {
void yourMethod();
}
class YourImplementation : IYourInterface {
public void yourMethod() {
/* magiska saker */
}
public void anotherMethod() {
/* mer magiska saker */
}
}
class AnotherClass {
/* För att nå metoden anotherMethod måste du ha en instans
av YourImplementation - därför [b]ska[/b] du ta emot parametern
som en referens till just en YourImplementation */
public void yetAnotherMethod(YourImplementation yi) {
yi.anotherMethod();
}
/* Följande fungerar om och endast om den ursprungliga
instansen var av typen YourImplementation - vilket du inte kan
säkerställa (utan en ful if-sats) */
public void yetAnotherMethod(IYourInterface yi) {
((YourImplementation)yi).anotherMethod(); // <- Ska undvikas!
}
}
För att svara på topic; Ibland kan man kanske bli tvungen till att använda Pascal Casing, men det är väldigt sällan. I så fall finner jag det bättre, i exemplen med Label och Textbox, att döpa dom till t.ex. inputFirstname (<- TextBox!) samt outputFirstname (<- Label!).
Hur döper ni era variabler av ui-kontroller codebehind som ligger t.ex. i en gridview?
protected void gridView_ItemDataBound(...)
{
Label labelFirstName = (Label)e.Item...
eller
Label firstName = (Label)e.Item...
eller på något helt annat sätt?
}
Jag tycker Eventmetodnamnet blir riktigt fult i de flesta fall.
Jag låter oftast inte namnet på GridViewn bli gridView1 eller liknande utan döper den till vad den verkligen gör t.ex.
CustomerGridView
Eftersom jag gillar att ha mina metodnamn utformade på samma sätt så gillar jag inte underscore eller småbokstäver i början av metodnamnet utan döper alltid om eventet till
Jag är emot prefix utan tycker isåfall att beskrivningen av vad det verkligen är skall finnas i fulltext i slutet om det kan vara så att en eventuell annan utvecklare kan bli förvirrad av FirstName som är en Label eller FirstName som kan vara en textbox då skriver jag hellre ut FirstNameTextBox än txtFirstName då txt kan betyda något helt annat för en annan person, varför inte slösa med bokstäver på variabelnamnen? :).. har sett andra förkortningar på t.ex. Value förkortat till Vl eller Val hur kostar det så mycket mer att skriva ut Value?
Sedan vet jag att det finns vissa som påstår att man jobbar snabbare med intellisensen om man skriver t.ex. txt för att få fram alla textboxar men jag anser att jag jobbar fortare om jag låter min textbox heta firstNameTextBox eftersom är jag ute efter firstName textboxen så skriver jag fir och får kanske upp 2 alternativ t.ex. label och textbox istället för 10 textbox alternativ :).
tack för svaren! :)
det verkar som om det finns många sätt att namnge sina kontroller på men jag håller nog med freguz att låta de ha samma namn som i griden och så namnger jag också idag.
250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849