Sie könnten versuchen, eine gemeinsame Schnittstelle für TypeOne und TypeTwo zu erstellen, und die Einschränkung würde diese Schnittstelle angeben? Was versuchst du genau zu erreichen?
Nein, Sie könnten die Klasse jedoch auf eine gemeinsame Basis oder Schnittstelle beschränken.
In der CLR selbst werden die Constraints (außer speziellen, wie die new-Constraint) ziemlich einfach gespeichert: nur eine Liste von Typ-Identifiern, im Grunde. Also gibt es wirklich keinen "Raum" für logische Operationen, wie Sie es spezifiziert haben ... nicht ohne eine Überarbeitung der CLR-Spezifikation oder vielleicht einige wirklich schlaue und hässliche Tricks auf Sprachniveau.
Sie können die allgemeine Funktionalität von TypeOne und TypeTwo in eine Basisklasse oder Schnittstelle extrahieren und diese Basisklasse oder Schnittstelle als Einschränkung verwenden. Wie würde der Compiler andernfalls wissen, was er mit T
machen kann?
Sie könnten TypeOne und TypeTwo eine Schnittstelle erben lassen und dann folgendes tun:
%Vor%