Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#1

Explicit Cast nötig bei List<Type> => ListType

  Alt 31. Okt 2011, 22:46
Na ja, bisserl kryptisch, der Title.
Also, ich hab ne Klasse
Code:
class MyTypeList : List<MyType> {}
Damit kann ich nun stringent die abgeleitete Klasse verwenden, und später Funktionalität hinzufügen... Nur... ein kleiner Haken: Die LINQ-Funktionen liefern 'List<MyType>'

Das blöde ist, das man die nicht implizip casten kann, also sowas get nicht
Code:
MyTypeList Func ()
{
  return (MyTypeList) SomeList.FindAll(...);
}
Zur Laufzeit kommt dann der blöde Fehler, das 'MyTypeList' nicht implizit auf 'List<MyType>' gecastet werden kann. Wär ja nicht so wild, wenn ich wenigstes eine explizite Konvertierung angeben könnte, geht aber nicht.

Ich habe mir nun so geholfen, das MyTypeList einen Konstruktor bekommt, der eine List<MyType> als Parameter bekommt... nun ja. Geht, ist aber irgendwie uncool.

Gibt es erstens eine Erklärung, wieso das nicht implizit geht und zweitens eine elegante Möglichkeit, das Problem zu lösen?
  Mit Zitat antworten Zitat