Ich möchte zur Laufzeit mein Programm entscheiden lassen, in welchen Typ das übergebene Objekt konvertiert werden soll, damit es an die richtige überladene Methode übergeben wird.
Ich bin mir sicher, dass diese Frage schon einmal gestellt wurde, kann aber keine Antwort darauf finden.
Folgendes Szenario (nicht elegant):
[highlight=c#]public bool SpeichereObjekt(ref ITour4UObjekt MeinObjekt)
{
if (MeinObjekt is clsKunde) InsertObjektInDB((clsKunde)MeinObjekt);
if (MeinObjekt is clsMitarbeiter) InsertObjektInDB((clsMitarbeiter)MeinObjekt);
//alle weiteren möglichen Typen dieser Schnittstelle müssen abgefragt und geboxt werden
return true;
}
private bool InsertObjektInDB(clsKunde Kunde)
{
return true;
}
private bool InsertObjektInDB(clsMitarbeiter Kunde)
{
return true;
}[/highlight]
Folgender kläglicher Versuch meinerseits deutet an, was ich gerne hätte:
Eventuell gehe ich ja auch einfach nur den falschen Weg und es gibt ein einfaches Konzept über das Prinzip der Generik, wie ich eine solche Unterscheidung treffen kann.
Hat jemand einen Lösungsvorschlag?
Ich bin mir sicher, dass diese Frage schon einmal gestellt wurde, kann aber keine Antwort darauf finden.
Folgendes Szenario (nicht elegant):
[highlight=c#]public bool SpeichereObjekt(ref ITour4UObjekt MeinObjekt)
{
if (MeinObjekt is clsKunde) InsertObjektInDB((clsKunde)MeinObjekt);
if (MeinObjekt is clsMitarbeiter) InsertObjektInDB((clsMitarbeiter)MeinObjekt);
//alle weiteren möglichen Typen dieser Schnittstelle müssen abgefragt und geboxt werden
return true;
}
private bool InsertObjektInDB(clsKunde Kunde)
{
return true;
}
private bool InsertObjektInDB(clsMitarbeiter Kunde)
{
return true;
}[/highlight]
Folgender kläglicher Versuch meinerseits deutet an, was ich gerne hätte:
Code:
InsertObjektInDB((MeinObjekt.GetType())MeinObjekt);
Hat jemand einen Lösungsvorschlag?
Comment