webForumDet fria alternativet

Variabelnamn i t.ex. gridview

.NET

7 svar · 554 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

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?
}
Medlem sedan feb. 2005280 inlägg
#2

jag brukar döpa dom till samma som i GridView:n så slipper jag lägga ens en millisekund att fundera över det :)

Medlem sedan nov. 20011 551 inlägg
#3

I griddar etc döper jag alltid dem till samma som de heter i gridden :)

utanför prefixar jag alltid med typ litName, tbAddress, cbGetNews et cetera... många stör sig men inte jag och min intellisense ;)

Medlem sedan feb. 20041 816 inlägg
#4

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. ;)

Label firstnameLabel = ...
TextBox firstname = ...

eller

Label firstname = ...
TextBox firstnameField = ...
ListControl interests = ...

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å.

Medlem sedan mars 20007 896 inlägg
#5

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!).

Medlem sedan feb. 20041 816 inlägg
#6

Off topic

*Inlägget redigerat av undertecknad:

Att jag funderar beror på ett tidigare projekt som jag börjat kolla på, och där görs det så.

Jag har fått svar på min fråga, åter till ämnet! :P*

Medlem sedan aug. 20003 575 inlägg
#7

doggelito skrev:

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

private void CustomerGridViewItemDataBound(...)
{

}

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 :).

Medlem sedan juni 20003 076 inlägg
#8

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.

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)