35 votes

F #: Cette expression doit avoir le type «unité», mais le type «ConsoleKeyInfo»

C'est une question simple, mais j'ai du mal à retrouver une réponse car F # est si nouveau. Je voulais juste faire une pause dans une application console F #, alors j'ai écrit:

Console.ReadKey ()

Mais cela donne l'avertissement: cette expression doit avoir le type «unité», mais le type «ConsoleKeyInfo». Toute aide serait grandement appréciée.

Merci, - Lee

63voto

namin Points 8542

Solution:

 Console.ReadKey() |> ignore
 

Explication: Console.ReadKey() renvoie un objet de type 'ConsoleKeyInfo' mais vous l'utilisez comme une instruction sans affecter la valeur de retour à quoi que ce soit. Donc F # vous avertit que vous ignorez une valeur. ignore prend n'importe quel type et ne renvoie rien. Il pourrait être défini comme ceci:

 let ignore _ = ()
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X