如何将此javascript行转换为c#?

时间:2013-07-26 22:45:28

标签: c# javascript file-conversion

我理解了该行的第一部分,但我不确定||之后的部分是什么确实。谁能告诉我如何将这一行转换为c#?

var g = grid[iy * gw + ix] || [];

原始来源在这里。 http://www.dhteumeuleu.com/aqualibrium/source

2 个答案:

答案 0 :(得分:2)

这是合乎逻辑的,但基本上等同于C#的null-coalescing operator ??。它向左解析,如果左边是false则向右解析。

有一点需要注意的是,由于Javascript的动态类型,情况并不像C#那样明确。 ||强制将左侧值转换为bool,并且有各种值最终将转换为false。例如,Javascript会将所有这些评估为“其他”:

* false || 'other';
* 0 || 'other';
* '' || 'other';
* undefined || 'other';

答案 1 :(得分:0)

评论为||相当于c#的coalesce运算符??而[]是一个空数组。

在这种情况下,grid是粒子数组的数组。 C#等效代码为:

// Particle[][] grid = ...

Particle[] g = grid[iy * gw + ix] ?? new Particle[];