Ich habe einige Methoden erstellt, die in der Parameterdeklaration verschachtelte generische Typen von Parametern verwenden:
public void Foo(IList<Pair<double, IList<double>>> myParameter)
{ // code goes here
}
Was ich erreichen wollte, war, diese Methode zu zwingen, 4 Arten von Variablen zu akzeptieren:
List<Pair<double, List<double>>> myVar
List<Pair<double, double[]>> myVar
Pair<double, List<double>>[] myVar
Pair<double, double[]>[] myVar
Aber es scheint, dass zweite, verschachtelte Schnittstelle kann nicht on-the-fly von C# konvertiert werden. Beim Versuch, einige der oben aufgeführten Variablen an meine Methode zu übergeben, erhalte ich Fehler:
Argument 1: Kann nicht von System.Collections.Generic.List<...> nach Cannot convert from System.Collections.Generic.IList<...> konvertiert werden
Muss ich wirklich zwei Aliasnamen für diese Methode erstellen, um dieses Problem zu lösen? Oder gibt es vielleicht irgendeinen Trick, mit dem ich dieses Problem umgehen kann?