gpt4 book ai didi

c# - 将 Func 转换为 Func

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:56 25 4
gpt4 key购买 nike

将采用派生类型的第一个参数的委托(delegate)转换为接收基类型的委托(delegate)的最佳方法是什么?我的意思是:

Func<DerivedType, Object> original = ...;
Func<BaseType, Object> converted = Something(original);

当然,转换不起作用,因为它们实际上是两种不同的类型。

最佳答案

由于要将基类型传递给采用派生类型的方法,因此需要添加强制转换。如果您知道所有对 converted 的调用都会传递 DerivedType,您可以制作一个简单的包装器,如下所示:

Func<BaseType,Object> converted = b => original((DerivedType)b);

Demo.

关于c# - 将 Func<DerivedType, Object> 转换为 Func<BaseType, Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31410342/

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