c# - C# 中 lua `local variable = var1 or var2` 的类似物是什么?

标签 c# coronasdk

我对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;

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

为了让它发挥作用var1必须可为空,即它应该是 class 类型的变量,或变量struct类型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);

关于c# - C# 中 lua `local variable = var1 or var2` 的类似物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34245735/

相关文章:

c# - C#中new修饰符的真正意义是什么

c# - 在网络场场景中工作时,我可以使用什么作为通用 session ID?

ios - 如何将 Coronasdk 文件导入 xCode?

android - Corona SDK 显示多行通知

lua - 电晕停止对象被拖出屏幕

lua - Cocos2d-x 还是 Moai SDK?

c# - 本地使用 azure 缓存时出现 InvalidOperationException

c# - Unity 5 上的 OnLevelWasLoaded 在哪里?

c# - Microsoft Dynamics CRM 2013 "The user authentication failed!",ADFS kerberosmixed 返回无响应

arrays - 如何在Corona SDK/LUA中创建随机显示图像和播放音频文件的功能?