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);
我对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
andtimer
values in a single array.name
would be astring
, rest of themint
.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);