PDA

View Full Version : [C#]il mio primo refactor!!


RaouL_BennetH
18-07-2009, 15:59
Ciao a tutti !

E' verissimo che leggendo il mio titolo molti di voi penseranno: "E chissene..."

ma sono contento e, soprattutto, molte cose senza l'aiuto di molti di voi di questa sezione non sarei mai riuscito a farle da solo e volevo condividere questo mio piccolo progresso.

Allora, la situazione iniziale era questa:

Avevo un combobox che come elemento di scelta presentava diversi valori, tipo:


1 - PIPPO
2 - PLUTO
3 - PAPERINO
4 - ARCHIMEDE
5 - ORAZIO


ed io, in base alla scelta effettuata, dovevo fare una query. Inizialmente quindi il mio codice l'avevo fatto così:



MiaInterfaccia dammiListe = new ClasseImplementaInterfaccia();
switch(cmbFiltro.SelectedIndex)
{

case 0:
dammiListe.GetLista("PIPPO", personaggiFumetti);
break;

case 1:
dammiListe.GetLista("PLUTO", personaggiFumetti);
break;

//per tutti i valori del combo
}



il valore fra doppi apici era il filtro in base al quale ricercare con la query all'interno del db e "personaggiFumetti" è l'oggetto che mi rappresenta la tabella del db.

Oltre a questo, ogni volta che c'era un combo che mi presentava lo stesso tipo di scelte, dovevo fare la collection di items apposita.

Allora, adesso, sono arrivato a questo:


//utilizzo un semplice file di testo dove inserisco i valori che mi servono per i vari combo

//mi sono scritto una funzioncina che prende questo file di testo e mi restituisce un dizionario

private IDictionary<int, string> dictionaryFilter;

dictionaryFilter = GUIResource.DictionaryLoader.Load("ValueList.txt");

foreach(KeyValuePair<int, string> k in dictionaryFilter)
{
myCombo.Items.Add(k.Value);
}

//quindi, la selezione la effettuo semplicemente così:

MiaInterfaccia dammiListe = new ClasseImplementaInterfaccia();
string selectedFilter = myCombo.Text;
dammiListe.GetLista(selectedFilter, personaggiFumetti);

//eliminando così lo switch



So bene che posso utilizzare semplicemente:


string selectedFilter = myCombo.Text;


non avendo neanche la necessità di avere un dizionario (quindi ancora più semplice)

Ma così facendo ho capito qualcosa in più sui dizionari e su come caricare valori da file di testo :D

RaouL.