我对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
类型的变量,或变量struct
类型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);
关于c# - C# 中 lua `local variable = var1 or var2` 的类似物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34245735/