我有一個重載方法的類:曖昧通話用LAMBDA在C#.NET
MyClass.DoThis(Action<Foo> action);
MyClass.DoThis(Action<Bar> action);
我想lambda表達式傳遞給動作版本:
MyClass.DoThis(foo => foo.DoSomething());
不幸的是,視覺Studio由於圍繞「foo」變量的類型推斷而無法區分Action<Foo>
和Action<Bar>
版本之間的區別,因此會引發編譯器錯誤:
The call is ambiguous between the following methods or properties: 'MyClass.DoThis(System.Action
<Foo>
)' and 'MyClass.DoThis(System.Action<Bar>
)'
解決此問題的最佳方法是什麼?