Gladh skrev:
mrhaze skrev:
Dvs. döp aldrig GUI element till btnOK, txtName, cboCities etc - det är föråldrat! (och samtidigt så ser det ju fult ut! )
Jag är av annan uppfattning, men så är jag mer praktisk än utseende fixerad ;)
Jag döper alla mina GUI-komponenter till prefix för att jag inte skall få kollisoner när mina privata variabler får samma namn som GUI-kontrollen. Ex: är om du har ett textfält där du vill skriva in förnamn och du efteråt i din kod vill plocka ut det namnet och lägga i en variabel så blir det.
string firstName = txtFirstName.Text;
På något sätt måste dessa 2 variabler särskiljas och då jag (man) oftas använder mindre GUI-kontroller än rena variabler så blir det mindre extra arbete att prefixa GUI-kontroller.
Sedan använder jag _FirstName på mina privata variabler i klassen och inte myFirstName eftersom det blir enklare när man vill omvandla variablen till en propertys med VS 2005, då tar den själv bort _ medans my står kvar... återigen praktiskt nytta före utseende...
Men det är ju bara som jag vill ha det, och som du märker så finns det olika synpunkter på det och du kommer garanterat stötta på de flesta olika typerna i din karriär....
- M
Självklart, glömde kanske skriva det - men som Microsoft själva rekommenderar och som spango skriver suffix på GUI element för att skilja dem från privata variablar.
Om du är mer praktiskt fixerad så förstår jag dock inte varför du vill köra med prefix då de treställiga perfixen är ett arv från när Visual Basic var ett otypat språk. Man skrev strName, intAntal, dblSumma, btnSpara och så vidare. Detta är i dag förlegat, då typen är känd av utvecklingsmiljön och man får fel om man blandar typer utan explicit konvertering. Dessutom gör prefixen att det blir svårare att använda intellisens.
Namnet skall motsvara det substantiv som bäst beskriver objektet. Namnet bör kunna utläsas som vanlig svenska eller engelska. Exempel: om objektet är en knapp man kan klicka på för att spara, bör namnet vara "SparaKnapp" eller "SaveButton".
Ser man hur bland annat Microsofts gurus anser att man skall koda, har man övergett detta med prefix, till förmån mot mer språkligt korrekta benämningar, allt i syfte att göra koden med läsbar och förståelig.
Själv anser jag att en stringent namnsättning ger kod som kan läsas rakt av. Exempel:
Dim theBus as New Bus (1234)
With theBus
.NumberOfSeatings = 54
.Fuel.Fill(45)
Dim theEngineData As Bus.Engine.Data = .GetEngineData()
End With
Håller du inte med om att:
string firstName = FirstNameField.Text
är enklare, snyggare och mer logisk än:
firstName = txtFirstName.Text
Ingen risk för kollisioner där.
Tänker man till när man döper kontroller och variablar så skall man inte behöva prefixa dem, utan då skall namnet tala för sig själv - precis som Microsoft själva har gjort .NET ramverket. ;)