Generische Schnittstellenimplementierung in C # erzwingen

8

Gibt es trotzdem Beschränkungen für eine generische Definition, um eine "generische Schnittstelle" zu implementieren ... das heißt, ich möchte, dass die Klasse die Übergabe einer Schnittstelle unterstützt und eine generische Klasse sie so einschränkt, dass die Klasse die Schnittstelle implementiert. Zum Beispiel wenn ich sage:

%Vor%

Das sollte eingeschränkt werden, damit MyImplementation IMyInterface

implementiert

Soweit ich weiß, kann das durch

erreicht werden %Vor%

Nun, gibt es überhaupt noch, um T zu zwingen, eine Schnittstelle zu sein?

Bearbeiten: Der Zweck war, etwas wie:

zu haben %Vor%

und die Liste auf nur Schnittstellen beschränkt haben (da sie Implementierungen bestimmter Schnittstellen zurückgeben soll)

    
Jorge Córdoba 30.08.2010, 13:19
quelle

3 Antworten

7

Meinst du, kann eine Einschränkung auch auf T like where T : interface gesetzt werden?

Wenn ja, dann no : diese Liste so ziemlich deckt Ihre Optionen ab.

Was Sie haben, ist so nah wie möglich, glaube ich.

Aus Neugier, was wäre der Grund dafür, T zu einer Schnittstelle zu machen?

Oder meinen Sie, dass eine Einschränkung auch auf T für T auf implementiert werden kann einige spezifische Schnittstelle?

Wenn ja, dann ja : einfach zwei where -Klauseln (z. B. where S : T where T : U ).

    
Dan Tao 30.08.2010, 13:21
quelle
3
%Vor%

Beispiel:

%Vor%     
Tokk 30.08.2010 13:21
quelle
1

Sie könnten so etwas tun, um es zur Laufzeit anstelle der Kompilierzeit zu erzwingen.

%Vor%     
ScottS 04.10.2013 20:37
quelle

Tags und Links