在使用 C# 与 F# 混合编程的时候(通常是使用 C# 实现 GUI,F#负责数据处理),经常会遇到要判断一个 option 是 None 还是 Some。虽然 Option module 里有 isSome 这样的函数,但还是不够方便。偶然在墙外看到一个解决方法

[<System.Runtime.CompilerServices.Extension>]
module Methods =

   [<System.Runtime.CompilerServices.Extension>]
   let Exists(opt : ‘a option) =
                match opt with
                | Some _ -> true
                | None -> false

一般是把函数放在需要的引入的那个 module 里,这样就不用单独引用一个 module 了。不过这也取决于怎么组织项目。

然后就可以在 C# 里这样用了:

if (aOptionVariable.Exists()) 
{
   ...
}

记得使用前 using 上面那个 module

相关文章:

  • 2021-09-08
  • 2021-10-09
  • 2021-12-26
  • 2022-12-23
  • 2021-12-20
  • 2021-10-26
  • 2022-02-28
猜你喜欢
  • 2021-12-02
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案