gpt4 book ai didi

c# - 为什么我不能将 linq 的 Cast 与用户定义的转换一起使用,但我可以将它与 Select 调用一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:47 26 4
gpt4 key购买 nike

<分区>

我最近在与 linq 的 Cast 一起使用用户定义的强制转换(强制转换运算符重载)时遇到问题方法。

我找到了一个 similar question关于我在 SO 的问题,我还发现了 link这很好地解释了这一点。我的问题解决了。

但有件事让我想知道:

为什么这不起作用:

foolist.Cast<bar>(); // throws InvalidCastException

虽然这有效:

foolist.Select(f => (bar)f).ToList(); // works fine

我相信这与每个方法的实现有关。如果是这样,Cast 方法不能有与 Select 类似的实现吗?允许它与用户定义的强制转换一起使用(因为这在某种程度上是预期的)。

注意:我不是在问它为什么失败。我在问为什么 Cast 方法以失败的方式编写。

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