|
1
2
它们实际上不是LINQ表达式(
编译器只是在“匿名”类中创建一个“匿名”方法来捕获任何变量。在这种情况下,您没有捕获变量-因此:
只需转换为“匿名”方法:
将调用者转换为:
因为泛型约束需要
|
|
|
2
0
我不是一个NHibernate用户(或任何其他的ORM),所以我只能猜测。但我怀疑这里发生的事情是你用了一个封闭。当您创建一个闭包时, 变量 在lambda表达式中使用的是随方法一起捕获/关闭/提升到类中的,这样,即使在很晚才调用该方法,该值也将保持当前状态。 |
|
3
0
我可能遗漏了一些东西,但我相信您提到的是泛型和多态性。 您希望传入一个trepositive类型,并调用一个所有trepositive类型都可以调用的方法。魔法发生在这里:
您要说明的是,我将调用此方法并使用类型nhclientrepository和client。然后进行函数调用,泛型方法将在此行中使用nhclient:
这将把trepositoryType()解析为nhclientrepository。然后,该方法使用您传入的类型和操作进行调用,并给出结果。 您可能希望在测试中设置一个断点,并在观察调用堆栈的同时使用调试器进行调试。如果您希望尝试跟踪发生的情况,可以查看所有泛型类型和方法调用等,以帮助您了解正在发生的情况。
编辑:参考您的评论,C 3类型推理帮助您完成操作。类型推断将x和y映射为nhclientrepository和client,这样调用就可以工作了。正如编译器在编译时知道的那样,它能够帮助您完成这项工作。如果您要调用
我假设这是你的最后一块拼图? |
|
|
Gojira · 为什么方法调用失败并出现参数异常? 8 年前 |
|
|
totoro · Java-调用方法时的继承和变量类型 9 年前 |
|
|
Slashy · 直接绘制到PictureBox 10 年前 |
|
|
joe · 参数和调用处理程序的问题 11 年前 |
|
|
Pakk · VB.net Windows窗体中的尝试-多线程 12 年前 |
|
|
Phil · C#将类强制转换为接口列表 13 年前 |
|
|
ianXian · 在WPF的线程中添加Canvas Children失败 13 年前 |