Ich habe folgendes Erbe:Warum schlägt dieser generische Cast fehl?
internal abstract class TeraRow{}
internal class xRow : TeraRow {} // xRow is a child of TeraRow
public IEnumerable<TeraRow> Compare(MappedTables which, DateTime selectionStart
, DateTime selectionEnd, string pwd)
{
IEnumerable<xRow> result=CompareX();
return (IEnumerable<TeraRow>)result; //Invalid Cast Exception?
}
Kann nicht das Objekt des Typs ‚System.Collections.Generic.List 1[xRow]' to type 'System.Collections.Generic.IEnumerable
1 [TeraRow]
auch, warum ich es überhaupt werfen müssen werfen?
Diese Art von Besetzung wird in C# 4.0 unterstützt und später in diesem Jahr veröffentlicht. Die Funktion, die dieses Problem anspricht, wird als kovariante generische Argumente bezeichnet. –