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

Dfc*_*tps 7 c# f# visual-studio monogame

我正在为学校做作业,我们用monogame做一个小游戏,还有在F#工作的额外挑战.游戏逻辑是完全不可变的F#,并且通过使用monogame中的Game类,入口点在C#中.然而,我遇到了一个关于F#中记录类型的奇怪问题.在逻辑(F#)中,我有以下几点:

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

    let Zero : Vector = {x=0.0; y=0.0}
... 
Run Code Online (Sandbox Code Playgroud)

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

...
player.vector = Vectors.Zero;
...
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*mer 11

当您将F#项目构建为exe,但将其用作库时,偶尔会有一些初始化代码无法调用.

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