Je développe en C# .net et je crois que j'ai besoin d'utiliser des génériques pour le problème que j'ai mais je ne sais pas par où commencer.Incorporation de génériques
Voici les étapes que je dois faire:
- Get ID de l'utilisateur - FAIT
- table de base de données de requête en utilisant ID - DONE
- Tirez une ligne - DONE
- Créer un objet de type dépendant ID
- objet Populate dépend du type
Différents rendez-vous nécessitent que des informations différentes soient extraites (remplies) de la base de données. Par exemple, un rendez-vous peut seulement exiger les noms d'utilisateurs/nom de famille où un autre peut exiger nom/prénom/dob.
Je souhaite que la classe enfant s'exécute d'abord, puis appelle la méthode parente. Le problème est que myAppointment est toujours traité en tant qu'objet de rendez-vous et non en tant que DoctorAppointment/OtherAppointment une fois qu'il a passé l'instruction Switch. Où MonRendezVous est déclaré en fait je ne sais quel type d'objet est-il va être
Voici le code que j'ai actuellement:
tblAppointment getAppointment = (from getApp in dc.tblAppointments
where getApp.appID == Id
select getApp).SingleOrDefault();
// Needs to be set the something. I really want this be to set to a generic type as I don’t really know what type it will be until it has been through the switch statement
Appointment myAppointment = null;
switch (getAppointment.tblAppointment.appTypeID)
{
case 2:
{
// Changes myAppointment from Appointment to DoctorsAppointment
myAppointment = new DoctorsAppointment();
}
break;
case 1:
{
myAppointment = new OtherAppointment();
}
break;
default:
break;
}
// I want this to set myAppointment to DoctorsAppointment.Populate(getAppointment)
return myAppointment.Populate(getAppointment);
Rendez-vous est la classe mère. MédecinsRendez-vous/autreRendez-vous en classe enfant.
Le remplissage dans les classes enfant nécessite un paramètre, contrairement à la classe parent. L'erreur que je reçois actuellement est:
No overload for method 'Populate' takes '1' arguments
J'espère que je me suis assez expliquée.
Merci,
Clare
est-Appointment.Populate une méthode virtuelle? En outre, vous avez une exception NullReferenceException ici lorsque appTypeID n'est pas 1 ou 2 ... – JBRWilkinson