F# 中的记录实例在 C# 中为空

Record instance in F# is null in C#

我正在为学校完成一项作业,其中我们使用 monogame 制作一个小游戏,并增加了使用 F# 工作的挑战。游戏逻辑是完全不可变的 F#,入口点在 C# 中,使用 monogame 中的游戏 class。然而,我遇到了一个关于 F# 中记录类型的奇怪问题。在逻辑 (F#) 中,我有一些类似的东西:

...
module Vectors =
    type Vector = {
        x : double
        y : double
    }

    let Zero : Vector = {x=0.0; y=0.0}
... 

在 C# 中,我有一些访问零的代码:

...
player.vector = Vectors.Zero;
...

奇怪的是,当我现在尝试使用 player.vector 时,它显示为空。调试时 Vector.Zero 也为空。我四处寻找了一些解决方案,可能是一些微不足道的错误,但我似乎找不到。

当您将 F# 项目构建为 exe,但将其用作库时,有时不会调用某些初始化代码。

这可以通过将项目更改为构建为库来解决。

已解决 - F# 项目正在构建为控制台应用程序。 将其更改为 class 库解决了问题。

谢谢@JohnPalmer