F#ConsoleKeyInfo类型不匹配

时间:2018-12-04 15:21:04

标签: f#

我的程序中有Console.ReadKey()语句以暂停执行

System.Console.ReadKey() |> ignore

但是VS代码显示了一个错误:

Type mismatch. Expecting a
    'ConsoleKeyInfo -> int'    
but given a
    'ConsoleKeyInfo -> unit'    
The type 'int' does not match the type 'unit'

我该如何解决?

1 个答案:

答案 0 :(得分:3)

您的表达式期望将int作为最后一个值。如果System.Console.ReadKey()|> ignore是函数的最后一行,则它是返回单元。我怀疑您希望返回的答案在上一行。使用“ let”捕获该值,在下一行执行ReadKey(),然后将let值放在最后一行以返回它。例如:

let foo : int= 
    let sum = 1 + 1
    System.Console.ReadKey() |> ignore
    sum