Ich muss einen Delegaten mit einem generischen List-Rückgabetyp definieren, was ist der beste Weg, dies zu tun?C# -Delegate mit generischer Rückkehr Typ der Liste
delegate List<T> TestDelegate(string arg1, string arg2);
Dann will ich diese
TestDelegate td = new TestDelegate(Method1);
oder diese
TestDelegate td = new TestDelegate(Method2);
Unterschrift des Method1 und Method2 tun:
List<MyClass1> Method1(string arg1, string arg2)
List<MyClass2> Method2(string arg1, string arg2)
Gibt es eine Möglichkeit, dies zu erreichen?
Wird nicht funktionieren, da 'Liste' ist kein Supertyp von 'List ' (versuch es, du bekommst einen Kompilierfehler). 'List ' ist nicht kovariant: Stellen Sie sich vor, was passieren würde, wenn Sie 'returnValue.Add (new MyClass2())' auf den von 'Method1' zurückgegebenen Wert versuchen würden. –
Heinzi