gpt4 book ai didi

c# - 存在从 'float' 和 'float' 以及从 'float' 到 'float' 的隐式转换

转载 作者:可可西里 更新时间:2023-11-01 08:13:01 28 4
gpt4 key购买 nike

这可能是我一段时间以来收到的最好的错误消息,我很好奇出了什么问题。

原代码

float currElbowAngle = LeftArm ? Elbow.transform.localRotation.eulerAngles.y 
: 360f - Elbow.transform.localRotation.eulerAngles.y

我正在使用 Unity3d 和 C#; LeftArm 是一个 bool 类型,根据 documentation Elbow.transform.localRotation.eulerAngles.y 返回一个 float 值。

这段代码给我错误:

There exists both implicit conversions from 'float' and 'float' and from 'float' to 'float'

这修复了它:

float currElbowAngle = LeftArm ? (float) Elbow.transform.localRotation.eulerAngles.y 
: 360f - Elbow.transform.localRotation.eulerAngles.y

所以我的问题是:尝试沟通时出现的错误是什么?实际出了什么问题?

更新 1: Elbow 是一个 GameObject 并且这个错误出现在 Visual Studio 中

最佳答案

三元 (e?a:b) 运算符对于类型系统来说有点棘手,因为双方都需要给出相同的返回类型。如果那里有一个微妙的错误,我不会感到惊讶。偶尔让我们开怀大笑是件好事。

这可能也解决了这个问题:

float currElbowAngle = LeftArm ? 0.0f + Elbow.transform.localRotation.eulerAngles.y 
: 360f - Elbow.transform.localRotation.eulerAngles.y

我推测问题在于您的真分支是左值而假分支是右值。我的解决方法使两个分支都成为右值。

关于c# - 存在从 'float' 和 'float' 以及从 'float' 到 'float' 的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364864/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com