F#ConsoleKeyInfo类型不匹配

F#ConsoleKeyInfo类型不匹配,f#,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' 如何修复它?您的

我的程序中有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'

如何修复它?

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

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

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

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

我怀疑是其他原因造成的。这是一个更大表达式的一部分吗?我怀疑是其他原因造成的。这是更大表达式的一部分吗?它可能是程序中的最后一行。因此,它需要返回一个退出代码
0
,以表示成功,或者返回其他内容以表示错误。它可能是程序中的最后一行。因此,它需要返回退出代码
0
,以表示成功,或返回其他内容以表示错误。