Torna al Thread
public class Dizionario
{
public int ID;
public string Nome;
}
//La clausola where: dice che il tipo passato deve ereditare da Dizionario e avere un costruttore vuoto
public class DizionarioData<tipoBase> where tipoBase:Dizionario, new()
{
public tipoBase SelectById(int id)
{
tipoBase temp = new tipoBase();
//per semplicità assegno dei valori ma qui effettuo una lettura da DB
temp.ID = 5;
temp.Nome = "Castello";
return temp;
}
}
public class Prodotto : Dizionario
{
}
public class ProdottoData : DizionarioData<Dizionario>
{
}
public class Convenzione : Dizionario
{
}
public class ConvenzioneData : DizionarioData<Convenzione>
{
}
public class Societa
{
public int id_prodotto;
public int id_convenzione;
public Prodotto ObjProdotto
{
get
{
ProdottoData pd = new ProdottoData();
return (Prodotto)pd.SelectById(id_prodotto);
}
}
public Convenzione ObjConvenzione
{
get
{
ConvenzioneData cd = new ConvenzioneData();
return cd.SelectById(id_convenzione);
}
}
}