我如何把下面的javascript翻译成c#

本文关键字:javascript 翻译 | 更新日期: 2023-09-27 18:10:49

我不明白's'在'(+s[I])'中是如何使用的。"+"代表什么?我也不明白这样用||符号,它是干什么用的?

var draw = function(s){
...
if (+s[i]) a = (a+90)%360||360; // Right
else a = (a-90||360); // Left

在下面的代码中,我不明白什么是"while (n——)"?

var getS = function(n){
    var s = '';
    while (n--) s += getNext(0);
    return s;
};

如果您想在上下文中查看此代码,请访问http://fractal.qfox.nl/并按F12打开开发人员工具,并在脚本中查找dragon.js。如果你喜欢这个挑战,请随时发布c#的完整翻译。

我如何把下面的javascript翻译成c#

在表达式前加上+将其强制转换为数字,例如从字符串。

如果可以转换为true,则为操作符左侧的值,否则为右侧的值。因此a||b的意思是"如果不是null、false、0或空字符串,则使用a,否则使用b"。

当n为0时,n--的布尔值为false

if (+s[i])正在检查s[i]是否存在并且是一个数字!= 0。在c#中,它与

相同
int n;
if (int.TryParse(s[i], out n) && n != 0) { }

a = (a-90||360);基本上是说,如果左边的||是空的,未定义的,假或零,然后采取右边。在c#中,它看起来像

a = (a-90 > 0)? a-90 : 360;

但是a必须在该行之前声明。


while (n--){ }不断重复,直到n = 0。n必须在运行代码之前声明,比如var n = 10;。在c#中应该是

int n = 10;
while (n >= 0)
{
    n--;
}