C# 中 lua `local variable = var1 or var2` 的模拟是什么?

What is analogue of lua `local variable = var1 or var2` in C#?

我对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。它们都是可选的。

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

var variable = var1 ?? var2;

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

为了使其工作 var1 必须 可为空 ,即它应该是 class 类型的变量,或者 [=] 类型的变量21=] 输入 System.Nullable<T>.

I simply would like to pass x, y, name, delay and timer values in a single array. name would be a string, rest of them int. name is the only value that is required.

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

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

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

var unicorn = new GameObject("unicorn", x:12, delay:24);
var bunny = new GameObject("bunny", x:40, y:30, timer:0);