Я следующее наследование:Почему этот родовой бросок не работает?
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?
}
Невозможно привести объект типа «System.Collections.Generic.List 1[xRow]' to type 'System.Collections.Generic.IEnumerable
1 [TeraRow]
Кроме того, почему я должен бросить его на всех?
Этот тип трансляции будет поддерживаться в C# 4.0, выпущенный позднее в этом году. Функция, которая решает эту проблему, называется ковариантными генерическими аргументами. –