C # .net Casting Frage

7

Ich bin etwas verwirrt über das Folgende.

Gegeben diese Klasse:

%Vor%

Warum wird eine InvalidCastException ausgelöst, wenn ich Folgendes versuche?

%Vor%     
jbenckert 14.01.2010, 16:03
quelle

3 Antworten

16

Weil Cast() nicht mit benutzerspezifischen Umwandlungen arbeitet - nur Referenzkonvertierungen (d. h. die normale Art der Konvertierung einer Referenz nach oben oder unten in der Vererbungshierarchie) und Boxing / Unboxing-Konvertierungen. Es ist nicht das Gleiche wie eine Umwandlung in Quellcode. Leider ist dies nicht eindeutig dokumentiert: (

EDIT: Um nur Jasons Kommentar in den Post zu bringen, können Sie das leicht mit einer Projektion umgehen:

%Vor%     
Jon Skeet 14.01.2010, 16:06
quelle
6

Wenn nur für Listen benötigt, können Sie

tun %Vor%

stattdessen.

    
herzmeister 14.01.2010 16:14
quelle
-1

Sie können dies verwenden, um ein ähnliches Problem zu bekommen, das Ihnen hilft

  

IEnumerable Ergebnisse = originalList.Select (x = & gt; (string) x);

    
Pramodkumar 05.11.2016 07:12
quelle

Tags und Links