F # не позволяет вам игнорировать возвращаемые значения.Тип unit
является версией F # void
.Таким образом, ошибка говорит по существу
Я ожидал, что оператор не будет возвращен, но вместо этого он возвращает значение типа int
Или наоборот.Я склонен неправильно читать это сообщение об ошибке.
Вероятно, произойдет одно из следующих действий:
- Рассматриваемый метод ожидает возвращаемого значения
int
, но метод Add
возвращает void, поэтому F # просто запрашиваетвозвращаемое значение - Метод, о котором идет речь, набирается как
unit
, но Add
возвращает int
, и F # требует, чтобы вы проигнорировали значение. GetCapture
или ToWpfImage
возвращают значения, которые необходимо явно обработать.
В последних 2 случаях это можно исправить, передав значение в ignore
function
mtvCap.GetCapture() |> ignore
mtvCap.ToWpfImage() |> ignore
grid.Children.Add(mtvCap.ImageElement) |> ignore
После небольшого разбора я считаю, что проблема # 2 в том, что UIElementCollection.Add
возвращает значение int
.Попробуйте изменить последнюю строку так, чтобы она выглядела так:
grid.Children.Add(mtvCap.ImageElement) |> ignore