Pseudoquiz - Tanti modi per fare una cosa

Stimolerei il vostro "modo di programmare". Immaginate di avere una combo su una pagina web [c#].

Vi chiedo di riempirla con i giorni della settimana sapendo che nell'applicazione ci sono molte combo di quel tipo.

La pagina web deriva da una BasePage : System.Web.UI.Page e ha un metodo già pronto richiamato dalla OnLoad che si chiama PrepareCombo().

Sentiamo varie soluzioni (ovviamente ottimizzate tempi di sviluppo con buon codice). Nei commenti sono ben accette le critiche alle soluzioni proposte.


Technorati tags:

Print | posted @ venerdì 15 gennaio 2010 22:22

Comments on this entry:

Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Emanuele at 15/01/2010 22:34

Inizio io: come prima indicazione mi sembra logico non inserire il riempimento nel code behind della pagina della combo visto che il testo dice che nell'applicazione esistono altre combo di quel tipo.
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by raffaeu at 15/01/2010 22:56

Enum, il numero di items non cambiera' nel tempo ed e' il piu' veloce da legger e puo' essere condiviso a livello di assembly senza problemi di performances.
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Gianluca at 15/01/2010 23:12

Sicuramente un enum come dice Raffaeu però lo metterei in una classe shared e istanzierei la combo sempre nella shared, sarà pure dal codebehind però è centralizzata visto che ce ne sono diverse...
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Emanuele at 16/01/2010 14:33

Concordo pienamente. Una classe statica(per il motivo di cui sopra) popolata a partire da un enum dato che il numero di elementi non varia nel tempo. Il metodo per popolare la combo potrà avere come parametro la combo stessa o meglio una variabile di tipo ListControl in modo da poter eventualmente popolare anche una ListBox.
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Emanuele at 16/01/2010 14:38

La soluzione di cui abbiamo parlato è abbastanza soddisfacente ed elegante. Pensate però che qualcuno potrebbe dirvi:
string giorniSettimana = "Lunedi,Martedi,Mercoledi,Giovedi,Venerdi,Sabato,Domenica";
string[] arrayGiorniSettimana = giorniSettimana.Split(',');
e un ciclo sull'array per popolare la combo. E' un'altra soluzione valida ma meno elegante poichè dimostra la mancata conoscenza di foreach (string s in Enum.GetNames(typeOf(...)))
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Emanuele at 16/01/2010 14:41

Non dimentichiamo nemmeno la presenza di System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames: un array di stringhe contenente il nome dei giorni della settimana e che quindi aggiungerebbe elenganza alla soluzione sopra riportata. Anche perè non avevo precisato se la soluzione era multilingua
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Emanuele at 16/01/2010 14:44

Il metodo più veloce in assoluto e meno elegante in assoluto è effettuare sulla combo passata come parametro tanti
cmbGiorni.Items.Add("Lunedi");
cmbGiorni.Items.Add("Martedi");
...
Gravatar # re: Pseudoquiz - Tanti modi per fare una cosa
by Adrian Florea at 17/01/2010 21:43

ciao Emanuele!

l'enum esiste, DayOfWeek, ma con le voci ovviamente in inglese

se le vuoi in italiano, potresti fare cosi': new CultureInfo("it-it").DateTimeFormat.DayNames
Comments have been closed on this topic.