Dai un nome ai controlli sui moduli utilizzando la stessa convenzione di una variabile privata?

StackOverflow https://stackoverflow.com/questions/9433

Domanda

Per qualche ragione non l'ho mai visto fare.C'è una ragione per cui no?Ad esempio, mi piace _blah per le variabili private, e almeno nei controlli Windows Forms sono variabili membro private per impostazione predefinita, ma non ricordo di averle mai viste nominate in quel modo.Nel caso in cui creo/memorizzi oggetti di controllo in variabili locali all'interno di una funzione membro, è particolarmente utile avere una certa distinzione visiva.

È stato utile?

Soluzione

Questo potrebbe essere controintuitivo per alcuni, ma utilizziamo la temuta notazione ungherese per gli elementi dell'interfaccia utente.

La logica è semplice:per ogni dato oggetto dati potresti avere due o più controlli ad esso associati.Ad esempio, hai un controllo che indica una data di nascita su una casella di testo, avrai:

  • la casella di testo
  • un'etichetta che indica che la casella di testo è per le date di nascita
  • un controllo del calendario che ti permetterà di selezionare una data

Per questo, avrei lblBirthDate per l'etichetta, txtBirthDate per la casella di testo e calBirthDate per il controllo del calendario.

Tuttavia sono interessato a sapere come lo fanno gli altri.:)

Altri suggerimenti

Notazione ungherese o no, sono più curioso di sapere se le persone antepongono m_ o _ o qualunque cosa utilizzino per le variabili membro private standard.

Personalmente antepongo gli oggetti privati ​​con _

I controlli del modulo sono sempre preceduti dal tipo, the soltanto il motivo per cui lo faccio è a causa dell'intellisense.Con moduli di grandi dimensioni diventa più semplice "ottenere un valore di etichetta" semplicemente digitando lbl e selezionandolo dalla lista ^_^ Segue anche il logica affermata da Jon Limjap.

Anche se questo vale ancora per le Linee guida per la codifica di Microsoft .NET, dai un'occhiata Qui.

Per me, la grande vittoria con la convenzione di denominazione di anteporre un carattere di sottolineatura ai membri privati ​​ha a che fare con Intellisense.Poiché il carattere di sottolineatura precede qualsiasi lettera dell'alfabeto, quando eseguo uno spazio ctrl per visualizzare Intellisense, ci sono tutti i miei _privateMembers, proprio in alto.

I controlli, tuttavia, sono una storia diversa, per quanto riguarda la denominazione.Penso che si presuppone l'ambito e anteporre alcune lettere per indicare il tipo (txtMyGroovyTextbox, ad esempio) ha più senso per lo stesso motivo;i controlli sono raggruppati in Intellisense per tipo.

Ma al lavoro è completamente VB e utilizziamo mPrivateMember.Penso che la m potrebbe significare modulo.

Sono passato da VB e ho mantenuto il prefisso del tipo di controllo per i controlli.I miei membri privati ​​utilizzano lettere minuscole (firstLetterLowercase) mentre i membri pubblici usano lettere Pascal/maiuscole (FirstLetterUppercase).

Se ci sono troppi identificatori/membri/locali per avere una probabilità del 90% di ricordare/indovinare come si chiama, probabilmente è necessaria una maggiore astrazione.

Non sono mai stato convinto che un prefisso del tipo di archiviazione sia utile e/o necessario.Tuttavia, ho la forte abitudine di seguire lo stile di qualunque codice sto utilizzando.

Non lo so, ma apprezzo la tua logica.Immagino che il motivo per cui la maggior parte delle persone non lo fa è che i caratteri di sottolineatura apparirebbero un po' brutti nella finestra Proprietà in fase di progettazione.Richiederebbe anche un carattere extra di spazio orizzontale, che è prezioso in una finestra agganciata come quella.

Notazione ungherese o no, sono più curioso di sapere se le persone prendono m_ o _ o qualunque cosa usano per le variabili di membro privato standard.

Luca,

Utilizzo il prefisso _ per gli oggetti della libreria di classi.Utilizzo la notazione ungherese esclusivamente per l'interfaccia utente, per il motivo che ho affermato.

Non uso mai il carattere di sottolineatura nei nomi delle mie variabili.Ho scoperto che qualsiasi cosa oltre ai caratteri alfa (a volte alfanumerici) è eccessiva a meno che non sia richiesta dalla lingua.

Sono nel campo Maiuscole/Minuscole ("titolo" è privato, "Titolo" è pubblico), mescolato con la notazione "ungherese" per i componenti dell'interfaccia utente (tbTextbox, lblLabel ecc.), e sono felice che non abbiamo Sviluppatori Visual Case-Insensitive-Basic nel team :-)

Non mi piace il carattere di sottolineatura perché sembra un po' brutto, ma devo ammettere che ha un vantaggio (o uno svantaggio, a seconda del punto):Nel debugger, tutte le variabili private saranno in primo piano perché _ è in cima all'alfabeto.Ma ancora una volta, preferisco che la mia coppia privata/pubblica stia insieme, perché ciò consente un debug più semplice della logica getter/setter poiché vedi la proprietà privata e pubblica una accanto all'altra,

Scrivo il nome della colonna del database che rappresentano.

Utilizzo m_ per le variabili membro, ma sono sempre più tentato di utilizzare solo lowerCamelCase come faccio per i parametri del metodo e le variabili locali.Il materiale pubblico è in UpperCamelCase.

Questa sembra essere una convenzione più o meno accettata nella comunità .NET.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top