2 Stimmen

Verschachtelte generische Typparameter - wie geht man damit um?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X