Laden...

Type cannot be used as type parameter 'T' in the generic type or method - Warum?

Erstellt von SunboX vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.038 Views
Thema geschlossen
S
SunboX Themenstarter:in
120 Beiträge seit 2005
vor 9 Jahren
Type cannot be used as type parameter 'T' in the generic type or method - Warum?

Ich möchte gerne zwei verschiedene Model von gleichen Interface erben lassen. Nun soll eine Methode als Übergabe jeweils eine Liste oder eine Collection eines Models was dieses Interface besichtzt übergeben bekommen. Dabei bekomme ich die Fehlermeldung:

Fehlermeldung:
The type 'InheritanceTest.FooModel' cannot be used as type parameter 'T' in the generic type or method 'InheritanceTest.Service.DoSomethingWith<T>(System.Collections.Generic.IEnumerable<T>)'. There is no implicit reference conversion from 'InheritanceTest.FooModel' to 'InheritanceTest.IModel<InheritanceTest.IModelItem>'. C:\Work\InheritanceTest\InheritanceTest\Program.cs 14 13 InheritanceTest

<Link auf kompletten Quellcode entfernt>

Kann mir jemand erklären, was genau ich falsch mache? 😄

VG André

Actionscript ist die Möglichkeit, postmaterielles Basteln zum Lebensstil zu machen.

Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!

S
SunboX Themenstarter:in
120 Beiträge seit 2005
vor 9 Jahren

Warum wurde der Link entfernt? Wer den kompletten Quellcode sehen möchte, der suche bitte auf GitHub nach "<entfernt>".

Hinweis von herbivore vor 9 Jahren

Du hattest unmittelbar nach dem Entfernen des Links eine PM mit der Bitte erhalten, keine externen Hoster zu verwenden und nur die relevanten Code-Teile direkt im Beitrag zu posten, wie das im übrigen auch in [Hinweis] Wie poste ich richtig? Punkt 4, 4.1 und 5 steht.

Generell gilt: Bitte vor Nachfragen immer erst die PMs schauen. Und sollte sich dort - nach angemessener Wartezeit - tatsächlich nichts finden, bitte per PM beim Team nachfragen. Dort lässt sich das schnell und ohne Störung der Community klären. In fachlichen Threads sind Nachfragen zu Moderationsmaßnahmen sind immer unnötig und immer unerwünscht.

Actionscript ist die Möglichkeit, postmaterielles Basteln zum Lebensstil zu machen.

Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!

H
523 Beiträge seit 2008
vor 9 Jahren

Vermutlich weil keiner Lust hat, sich den ganzen Code anzuschauen. Poste halt die relevanten Code-Ausschnitte.

16.834 Beiträge seit 2008
vor 9 Jahren

Zudem ist die Fehlermeldung ja mehr als eindeutig.
Siehe auch Antwort in erstem Google-Treffer Why does a generic type constraint result in a no implicit reference conversion error?

  
ICage< IAnimal > cage = new Cage< Tiger > ( );  
  

An ICage<IAnimal> is a cage into which you can place any animal, but a Cage<Tiger> can only hold tigers, so this must be illegal

Beachte [Hinweis] Wie poste ich richtig? 1.1

S
SunboX Themenstarter:in
120 Beiträge seit 2005
vor 9 Jahren

Vielen Dank, habe die Antwort hier bekommen:
Type cannot be used as type parameter 'T' in the generic type or method - Why? [duplicate]

Habe es in das Beispiel auf GitHub mit eingebaut. Das alles hier zu posten wäre zu viel.

Actionscript ist die Möglichkeit, postmaterielles Basteln zum Lebensstil zu machen.

Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!

Hinweis von herbivore vor 9 Jahren

Es ist schon ziemlich unverschämt - erst recht mit so einer Frage - zwei Foren gleichzeitig zu beschäftigen, siehe [Hinweis] Wie poste ich richtig? Punkt 2.2.

Thema geschlossen