F#未定义活动模式

F#未定义活动模式,f#,F#,我遵循的解决方案是使用DateTime.TryParseExact(它比DateTime.TryParse更不友好)到DateTime选项中 要保存单击,请执行以下代码: let (|DateTimeExact|_|) (format: string) s = match DateTime.TryParseExact(s, format, Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.No

我遵循的解决方案是使用DateTime.TryParseExact(它比DateTime.TryParse更不友好)到DateTime选项中

要保存单击,请执行以下代码:

let (|DateTimeExact|_|) (format: string) s =
    match DateTime.TryParseExact(s, format, Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None) with
    | true, d -> Some d
    | _ -> None
当我尝试使用它时(在同一个模块中。我也尝试在同一个函数中定义它,但运气不佳)

Visual Studio在“DateTimeExact”下面加下划线,并显示一个错误:

'未定义值或构造函数'DateTimeExact'

我做错了什么?当我将鼠标悬停在活动模式的let绑定上时,我看到

val( | DateTimeExact|_|) : (string -> string -> DateTime option)

你的语法根本不正确;最重要的是:


谢谢你们两位的帮助!
val( | DateTimeExact|_|) : (string -> string -> DateTime option)
// incomplete pattern, but if you _know_, you know
match dateStr with DateTimeExact "M-d-yyyy" _ -> ()

// complete pattern
match dateStr with
  | DateTimeExact "M-d-yyyy" _ -> ()
  | _                          -> failwith "didn't match"