【发布时间】:2021-10-06 11:09:39
【问题描述】:
通过使用三元运算符 ?:
perClick = PlayerPrefs.HasKey("clickpoints") ? PlayerPrefs.GetFloat("clickpoints") : 2.0f;
我想将存储在 PlayerPref 中的浮点数分配给“perClick”变量,如果条件计算为 True,或者,如果计算结果为 False,我想将“perClick”设置为 2。但是,如果为 False,我也想做 PlayerPrefs.SetFloat("clickpoints, 2.0f)。是否可以在最后一个选项中添加多个语句?
【问题讨论】:
-
你可以调用一个方法,只要它返回正确的类型
-
perClick = PlayerPrefs.GetFloat("clickpoints", 2.0f);使用函数的默认值版本即可。 docs.unity3d.com/ScriptReference/PlayerPrefs.GetFloat.html 如果您想强制首选项具有值,请也调用PlayerPrefs.SetFloat("clickpoints, perClick);。如果perClick是一个属性,您可以在设置器中更改时设置首选项。 -
改用
if then else构造。它将使您的代码更易于阅读,并且不需要您诅咒和放弃。三元组的两部分是表达式而不是语句。他们的工作方式是var result=someCondition ? valueIfTrue : valueIfFalse;。像不相关的函数调用这样的语句没有空间
标签: c# unity3d conditional-operator