什么是C#中lua`local variable = var1或var2`的类比?

时间:2015-12-12 22:27:27

标签: c# corona

我非常熟悉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。他们都是选择。

1 个答案:

答案 0 :(得分:3)

与Lua不同,C#不允许您引用不存在的变量。但是,它允许您引用设置为null的变量,并跳过null值,如下所示:

var variable = var1 ?? var2;

如果不是variable,这会将var1设置为null的值;否则,它会将其设置为var2的值。

为了使其正常工作var1必须可以为空,即它应该是class类型的变量,或struct类型的变量{ {1}}。

  

我只想将System.Nullable<T>xynamedelay值传递到一个数组中。 timername,其余为stringint是唯一需要的值。

C#提供了一种传递命名参数的机制。如果将其与设置默认值的能力结合起来,则可以构建如下所示的API:

name

您可以通过提供参数名称,使用16种可选项目组合中的任意一种来调用它:

public GameObject(
    string name
,   int? x = null
,   int? y = null
,   int? delay = null
,   int? timer = null
);