Jetzt, da wir generische Kovarianz und Kontravarianz auf Schnittstellen und Delegaten in C# haben, war ich nur neugierig, wenn Sie eine Type
geben, können Sie die Kovarianz/Kontravarianz seiner generischen Argumente herausfinden. Ich fing an, zu versuchen, meine eigene Implementierung zu schreiben, die alle Methoden auf einem gegebenen Typ durchsehen und sehen würde, ob die Rückgabetypen und oder Argumente mit den Typen in den allgemeinen Argumenten übereinstimmen. Das Problem ist, dass selbst wenn ich diese:Gibt es eine Möglichkeit, die Varianz einer Schnittstelle/eines Delegaten in C# 4.0 zu bestimmen?
public interface IFoo<T>
{
void DoSomething(T item);
}
mit meiner Logik, es sieht aus wie es kontra sein sollte, aber da wir nicht wirklich angegeben haben:
public interface IFoo<in T>
{
void DoSomething(T item);
}
(der in Parameter) es ist nicht wirklich kontravariant. Was zu meiner Frage führt: Gibt es eine Möglichkeit, die Varianz generischer Parameter zu bestimmen?
warum würden Sie das brauchen? –
@ Mitch Ich werde dich wissen lassen, wenn ich das herausgefunden habe :) Ich habe nur aus Neugier gefragt ... – BFree