Unity3d 为什么我的三元运算符对if-else给出不同的结果?
我遇到的问题是,对于较小的代码,我试图使用三元运算符而不是if-else,但在我的示例中使用它时,返回的结果与使用if-else时不同 问题代码如下 否则Unity3d 为什么我的三元运算符对if-else给出不同的结果?,unity3d,ternary-operator,game-development,Unity3d,Ternary Operator,Game Development,我遇到的问题是,对于较小的代码,我试图使用三元运算符而不是if-else,但在我的示例中使用它时,返回的结果与使用if-else时不同 问题代码如下 否则 if(string.IsNullOrEmpty(jn["LARM"].Value)) pm.ItemLeftArm = null; else pm.ItemLeftArm = jn["LARM"]; 三元 pm.ItemLeftArm = string.IsNullOrEmpt
if(string.IsNullOrEmpty(jn["LARM"].Value))
pm.ItemLeftArm = null;
else
pm.ItemLeftArm = jn["LARM"];
三元
pm.ItemLeftArm = string.IsNullOrEmpty(jn["LARM"].Value) ? null : jn["LARM"];
jn[“LARM”]是来自simpleJSON的json节点,它可以是一个数字,例如“0”,也可以是零,例如“0”
它以if-else的形式返回null,但返回从“”转换为0的jn对象
我不确定我为什么会遇到这个问题。代码还可以,问题一定出在JSON中。您是否尝试将
jn[“LARM”].Value
记录在terniary运算符之前,以确保该值是否为null/empty
顺便说一句,为什么要使用simpleJSON而不是新的Unity integrated JsonUtility?代码还可以,问题一定出在JSON中。您是否尝试将
jn[“LARM”].Value
记录在terniary运算符之前,以确保该值是否为null/empty
顺便说一句,为什么您要使用simpleJSON而不是新的Unity integrated JsonUtility?很抱歉回复太晚,if语句返回true并将pm.ItemLeftArm设置为true,但替换为三元运算符返回false并将pm.ItemLeftArm设置为jn[“LARM”]。if和三元并没有区别,但它们给出的结果不同,我不知道为什么。我可以解决这个问题,但我只是想知道为什么会发生这种情况?今晚我完成工作后会打印一些打印输出,以跟踪可能出现的问题并发布它们抱歉回复太晚,if语句返回true并将pm.ItemLeftArm设置为true,但替换为三元运算符返回false并将pm.ItemLeftArm设置为jn[“LARM”]。if和Trialum没有区别,但它们给出不同的结果,我不确定为什么。我可以解决它,但我只是想知道为什么会发生这种情况?我今晚完成工作后会打印一些内容,以跟踪可能出现的问题并发布它们