委托中的派生类型功能

本文关键字:类型 功能 派生 | 更新日期: 2023-09-27 17:59:13

我想写一个签名为Expression<Func<T, bool>> Foo<T>()的方法。我的类U继承自T。我想在这个委托中包含特定于U的处理。问题是,T不能隐式转换为U。在这种方法中,有什么方法可以访问U特定的属性吗?

并发症:我也有V:T型,我想处理它,所以我不能在签名中用U代替T来利用方差。

委托中的派生类型功能

一个简单的方法是定义一个T和U都从中继承(使用它)的接口。

我最终使用了单独的重载:(),(myVar)其中T:U,和(myVar,myvar2)其中T:V。这很成功,我很幸运,因为每个参数都是与实体属性相对应的应用程序值。