我理解了该行的第一部分,但我不确定||之后的部分是什么确实。谁能告诉我如何将这一行转换为c#?
var g = grid[iy * gw + ix] || [];
答案 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[];