F # ne permet pas pour vous d'ignorer silencieusement les valeurs de retour. Le type unit
est la version F # de void
. Donc, l'erreur dit essentiellement
I expected la déclaration d'avoir pas de retour mais elle retourne une valeur int
Ou le contraire. J'ai tendance à lire incorrectement ce message d'erreur.
Ce qui est probable qui se passe est une des façons suivantes
- La méthode en question s'attend à une valeur de retour
int
mais la méthode Add
retourne void où F # est tout simplement demander une valeur de retour
- La méthode en question est tapé
unit
mais Add
renvoie int
et F # a besoin de vous pour ignorer la valeur.
- Les valeurs
GetCapture
ou ToWpfImage
renvoient des valeurs qui doivent être gérées explicitement.
Pour les 2 derniers cas, vous pouvez corriger cela en passant la valeur à la fonction ignore
mtvCap.GetCapture() |> ignore
mtvCap.ToWpfImage() |> ignore
grid.Children.Add(mtvCap.ImageElement) |> ignore
Après avoir creusé autour d'un peu je crois # 2 est la question parce que UIElementCollection.Add
retourne une valeur int
. Essayez de modifier la dernière ligne pour ressembler à ceci:
grid.Children.Add(mtvCap.ImageElement) |> ignore
Bravo! La plupart des développeurs auraient perdu du temps à réécrire. Je suis content de voir que vous faites ce qu'il faut: apprendre la technologie. – pblasucci