gpt4 book ai didi

.net - 为什么这个通用转换会失败?

转载 作者:行者123 更新时间:2023-12-03 18:17:06 26 4
gpt4 key购买 nike

我有以下继承:

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]

另外,为什么我需要转换它?

最佳答案

您需要转换它,因为 IEnumerable<T>在 T 上不是协变的。你可以这样做:

return result.Cast<TeraRow>();

关于.net - 为什么这个通用转换会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com