我非常熟悉lua,我想执行简单的变量设定值。
在lua:
local variable = var1 or var 2
这意味着如果var1
存在,请将variable
的值设置为var1
,否则将其设置为var2
。
如何在C#中执行这样的等式?我只是学习Unity 3D一个奇迹如何执行这样的事情。
修改
所以在我的特定情况下:
public GameObject to (GameObject localTarget, string[][] transitionParams)
{
int delay = transitionParams.delay;
int timer = transitionParams.timer;
int x = transitionParams.x;
int y = transitionParams.y;
}
如何检查这些参数是否已设定? transitionParams
中的每一个都可能是nil
。他们都是选择。
答案 0 :(得分:3)
与Lua不同,C#不允许您引用不存在的变量。但是,它允许您引用设置为null
的变量,并跳过null
值,如下所示:
var variable = var1 ?? var2;
如果不是variable
,这会将var1
设置为null
的值;否则,它会将其设置为var2
的值。
为了使其正常工作var1
必须可以为空,即它应该是class
类型的变量,或struct
类型的变量{ {1}}。
我只想将
System.Nullable<T>
,x
,y
,name
和delay
值传递到一个数组中。timer
为name
,其余为string
。int
是唯一需要的值。
C#提供了一种传递命名参数的机制。如果将其与设置默认值的能力结合起来,则可以构建如下所示的API:
name
您可以通过提供参数名称,使用16种可选项目组合中的任意一种来调用它:
public GameObject(
string name
, int? x = null
, int? y = null
, int? delay = null
, int? timer = null
);