![]() |
Explicit Cast nötig bei List<Type> => ListType
Na ja, bisserl kryptisch, der Title.
Also, ich hab ne Klasse
Code:
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>'
class MyTypeList : List<MyType> {}
Das blöde ist, das man die nicht implizip casten kann, also sowas get nicht
Code:
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.
MyTypeList Func ()
{ return (MyTypeList) SomeList.FindAll(...); } 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? |
AW: Explicit Cast nötig bei List<Type> => ListType
Mir ist noch nicht ganz klar was du genau machen willst, aber meinst du vielleicht so etwas?
Code:
public MyTypeList Test()
{ MyTypeList TestList = new MyTypeList(); TestList.AddRange(FindAll(FindPredicate)); return TestList; } |
AW: Explicit Cast nötig bei List<Type> => ListType
Moin,
Genau so habe ich mir geholfen, aber mir gefällt das nicht. Ich verstehe nicht, weshalb MyTypeList nicht in List<MyType> konvertiert werden kann, beide sind doch typkompatibel. |
AW: Explicit Cast nötig bei List<Type> => ListType
Oben hast du ja genau umgekehrt gecastet. Und das geht logischerweise nicht, weil es eben nicht der korrekte Typ ist. Die Richtung, die du jetzt schreibst, geht:
Code:
public void Test()
{ List<Int32> TestList = this; } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz