【发布时间】:2011-10-06 09:15:02
【问题描述】:
我正在寻找一种方法来做到这一点:
var instanceOfMyClass = new MyClass();
instanceOfMyClass.AMethod<AType>(x => x.AnotherMethod(y => y.PropertyOfATypeClass));
我可以这样做,但我需要明确指定另一个类的类型,如下所示:
instanceOfMyClass.AMethod<AType>(x => x.AnotherMethod<AType>(y => y.PropertyOfATypeClass));
有没有不需要重写 AType 的方法?
目前为止,AnotherMethod 签名是:
AnotherMethod<T>(Expression<Func<T, object>>)
在哪里
<T>
与“AMethod”中的 AType 相同
“AnotherMethod”与“AMethod”在同一个类中定义。
我需要 AMethod 的签名。
【问题讨论】:
-
请提供
MyClass.AMethod、MyOtherClass.AnotherMethod、MyOtherOtherClass.PropertyofATypeClass的签名(我不知道MyOtherClass和MyOtherOtherClass类型的名称实际上是什么,因为我可以' t 在你的 lambda 表达式中告诉x和y的类型)。 -
AMethod
() 作为参数的委托的定义是什么? -
泛型类型推断是基于参数的——我们需要一个非常清晰的例子才能看到......
-
问题是“那些签名方法是什么?”
-
我们真的需要比这更多的代码。 AMethod 的签名是什么?是否在 AType 中定义了 AnotherMethod?