F# 两个新Bug,集中在 module 中

 新年发布F#的两个 Bug,都集中在 module 中。

第一个是:
[<CLIEvent>] 特性在 module 不起作用,CLIEvent 的作用是使 F# 的事件编译后生成标准接口,方便C#调用。但是 CLIEvent 在 module 中不运作,要实现相同的效果,只能通过 type 声明类,然后在类中声明静态事件。


第二个是:
module 中声明的私有成员,在 module 外仍然可以赋值。实例代码如下:

module K1Dialog =

let mutable private Frames = 0

 

module test =

    let test =

        K1Dialog.Frames <- 1



如果第一个 Bug 可以看作一种特性,而且容易纠正解决,那么第二个 Bug则是致命的,而且隐藏在代码中难以发现。





 

原文地址:https://www.cnblogs.com/greatim/p/4197174.html