C# · 12月 22, 2021

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

我正在为学校做作业,我们用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}…

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

…player.vector = Vectors.Zero;…

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

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

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