Это выражение должно иметь тип 'unit', но имеет тип 'ConsoleKeyInfo' - PullRequest
35 голосов
/ 28 ноября 2008

Я просто хотел сделать паузу в консольном приложении F #, поэтому я написал:

Console.ReadKey ()

Но это дает предупреждение: This expression should have type 'unit', but has type 'ConsoleKeyInfo'.

Что я могу сделать, чтобы это исправить?

1 Ответ

62 голосов
/ 28 ноября 2008

Решение:

Console.ReadKey() |> ignore

Объяснение: Console.ReadKey() возвращает объект типа 'ConsoleKeyInfo', но вы используете его как оператор без присваивания возвращаемого значения чему-либо. Поэтому F # предупреждает вас, что вы игнорируете значение. ignore принимает любой тип и ничего не возвращает. Это можно определить так:

let ignore _ = ()
...