Sagen wir, ich habe zwei Tische, Mittag-und Abendessen. Ich weiß, dass beide die DateTime-Eigenschaft "Time" enthalten.Referenz generische Eigenschaft in Ausdruck
Wenn ich eine generische Methode GetTime habe, wie kann ich db.Lunch.Time zurückgeben, wenn T Lunch ist und db.Dinner.Time, wenn T Dinner ist? Ich versuche das zu erreichen, ohne für T einzeln mit typeof, sondern generisch zu testen.
Pseudocode:
public T GetTime<T>(DateTime dt)
{
return MyDataContext.GetTable<T>().Where(entity => entity.Time == dt);
}
Also, wenn ich GetTime < Abendessen nennen> es wird in dem Abendtisch für alle Abendessen Einheiten mit der Eigenschaft Zeit gleich meine gelieferten Parameter dt automatisch aus.
Das Problem ist, dass ich entity.Time in meinem Ausdruck nicht angeben kann, weil T ein generischer ist. Meine Frage ist, wie man das umgehen kann, so dass ich nach jedem T suchen kann (wissend, dass alle meine Entitäten tatsächlich die Time-Eigenschaft haben), ohne spezielle Methoden für Abendessen und Mittagessen zu erstellen.
implementieren hat Zeit ist eher verwirrend. Ein Codebeispiel oder ein Pseudocode würde helfen. –
Einige Pseudocode hinzugefügt, und bekam eine gute Antwort :) – Alex
Denken Sie daran, _generics_ sind keine _templates_. Alles, was Sie mit dem type-Parameter tun, muss nur auf der Grundlage der Einschränkungen des type-Parameters auflösbar sein. –