Tôi có một lớp học với một phương pháp quá tải:Gọi mơ hồ với một Lambda trong C# .NET
MyClass.DoThis(Action<Foo> action);
MyClass.DoThis(Action<Bar> action);
Tôi muốn vượt qua một biểu thức lambda lên phiên bản Action:
MyClass.DoThis(foo => foo.DoSomething());
Thật không may, Visual Studio đúng không thể cho biết sự khác biệt giữa các phiên bản Action<Foo>
và Action<Bar>
, do suy luận kiểu xung quanh biến "foo" - và do đó nó làm tăng lỗi trình biên dịch:
The call is ambiguous between the following methods or properties: 'MyClass.DoThis(System.Action
<Foo>
)' and 'MyClass.DoThis(System.Action<Bar>
)'
Cách tốt nhất để giải quyết vấn đề này là gì?