Mam klasy z przeciążonej metody:Niejednoznaczne połączeń z lambda w C# .NET
MyClass.DoThis(Action<Foo> action);
MyClass.DoThis(Action<Bar> action);
Chcę przekazać wyrażenie lambda do wersji Działanie:
MyClass.DoThis(foo => foo.DoSomething());
Niestety, Visual Studio słusznie nie może stwierdzić różnicy między wersjami Action<Foo>
i Action<Bar>
, ze względu na wnioskowanie typu otaczające zmienną "foo" - i dlatego powoduje błąd kompilatora:
The call is ambiguous between the following methods or properties: 'MyClass.DoThis(System.Action
<Foo>
)' and 'MyClass.DoThis(System.Action<Bar>
)'
Jaki jest najlepszy sposób obejścia tego?