委托中的派生类型功能

时间:2011-06-14 19:13:17

标签: c# entity-framework generics delegates variance

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我最终使用了单独的重载:(),(myVar)其中T:U和(myvar,myvar2)其中T:V。这样做了,我很幸运,因为每个参数都是一个与之对应的app值实体财产。