1

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

复杂性:我也有想要处理的类型 V : T ,所以我不能通过在签名中用 U 替换 T 来利用方差。

4

2 回答 2

0

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

于 2011-06-14T19:33:50.833 回答
0

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

于 2011-06-24T19:40:29.670 回答