Ich habe eine zwei generische abstrakte Typen: Entity
und Association
.Wie eine generische Constraint, die eine generische Art ist zu deklarieren
Sagen wir Entity
wie folgt aussieht:
public class Entity<TId>
{
//...
}
und Association
wie folgt aussieht:
public class Association<TEntity, TEntity2>
{
//...
}
Wie kann ich Vereinigung beschränken, so dass sie jeder Entity sein kann?
Ich kann es durch die folgenden erreichen:
public class Association<TEntity, TId, TEntity2, TId2>
where TEntity : Entity<TId>
where TEntity2: Entity<TId2>
{
//...
}
Diese sehr langweilig wird, da mehr Arten von Association
ableiten, weil ich durch den über TId und TID2 zu halten habe. Gibt es einen einfacheren Weg dies zu tun, außer nur die Beschränkung zu entfernen?
Sehr schön !! +1. – Nayan
Ja, ich bin bereits zu dem Schluss gekommen, dass eine Schnittstelle am besten zu meinen Bedürfnissen passt, außer dass ich meine Schnittstellen anpassen muss, um eine nicht-generische Basis zu haben! Ich hatte gehofft, dass es einen ordentlichen Sprachtrick geben würde, aber leider ... – HackedByChinese
@HackedByChinese: Ich bin sicher, dass es etwas ist, das hinzugefügt werden könnte, aber da es einen vorhandenen Workaround gibt, der sowohl einfach als auch 100% effektiv ist Funktionalität), es ist wahrscheinlich nicht wahrscheinlich, dass wir in naher Zukunft so etwas wie "TEntity >" sehen werden;) –