Ошибка возникает потому, что она неоднозначна, поскольку она объявлена с использованием var
.Это может быть:
bool isConfused = ambiguous.IsValid;
Или:
Func<int, bool> isConfused = ambiguous.IsValid;
Использование var
требует, чтобы компилятор мог определить точное значение, и в этом случае есть две возможности.
Однако, если вы удалите var
, вы все равно получите (другую) ошибку, поскольку у вас не может быть двух членов с одинаковым именем, одного свойства и одного метода.