0

当我float.IsFinite(float f)在 C# shell 中使用时,我没有问题。但是,当我在 Unity 的上下文中使用它时,我收到一个错误,声称它没有定义:

错误 CS0117:“float”不包含“IsFinite”的定义

以下是相关代码:

public static bool IsFinite(Unit u) => float.IsFinite(u.blocks);

Unit是我在其中编写了上述行的结构。

我的问题是:为什么会出现这个错误,我该如何解决?

4

1 回答 1

3

float.IsFinite存在于 .NET 5、.NET Standard 2.1 和 .NET Core 2.1 中。然而,Unity 都不支持这些框架,只支持 .NET Standard 2.0。这就是您不能在此处使用该功能的原因。

但是,很容易为缺少该功能创建一个解决方法:

public static bool IsFinite(Unit u) => !float.IsInfinity(u.blocks)

Unity 支持论坛上有一个关于 .NET 5 的激烈讨论

于 2021-02-12T11:41:36.147 回答