【发布时间】:2011-01-16 06:22:46
【问题描述】:
我有一个带有重载方法的类:
MyClass.DoThis(Action<Foo> action);
MyClass.DoThis(Action<Bar> action);
我想将 lambda 表达式传递给 Action 版本:
MyClass.DoThis( foo => foo.DoSomething() );
不幸的是,由于围绕“foo”变量的类型推断,Visual Studio 正确地无法区分 Action<Foo> 和 Action<Bar> 版本 - 因此它会引发编译器错误:
以下方法或属性之间的调用不明确:'MyClass.DoThis(System.Action
<Foo>)' 和 'MyClass.DoThis(System.Action<Bar>)'
解决这个问题的最佳方法是什么?
【问题讨论】: