将 javascript 方法的功能转换为 C#

发布于 2024-11-19 07:43:51 字数 363 浏览 1 评论 0原文

我有一个 javascript 函数,它具有我想要转换为 C# 的功能。我不知道如何正确翻译这个。

有人可以帮忙吗?

function validateSequenceNumber(val, num) {

   var seqNumber = ((parseFloat(num) + 0xCED9) * 0x8088405) & 0xFFFF
   var checksum = seqNumber.toString(16).toUpperCase()

   if (checksum != val.substring(11, 15)) {
     return false;
   }
    return true;
   }

I have a javascript function that has functionality that I would like to convert to C#. I'm not sure how to properly translate this.

Can anyone help?

function validateSequenceNumber(val, num) {

   var seqNumber = ((parseFloat(num) + 0xCED9) * 0x8088405) & 0xFFFF
   var checksum = seqNumber.toString(16).toUpperCase()

   if (checksum != val.substring(11, 15)) {
     return false;
   }
    return true;
   }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吹泡泡o 2024-11-26 07:43:51

parseFloat 变为 float.ParseseqNumber.toString(16) 变为 string.Format("{0:x}", seqNumber ).ToUpper();

另外注意C#中的子串参数不是start、end;而是开始,长度。所以要小心。 function 显然变成了 bool 。我想就是这样。

parseFloat becomes float.Parse, seqNumber.toString(16) becomes string.Format("{0:x}", seqNumber).ToUpper();

And note on substring parameters in C# are not start, end; rather start, length. So be careful. function becomes bool obviously. And I think that's it.

放肆 2024-11-26 07:43:51

使用的字符串函数还应该使用不变区域性,因为该函数似乎不用于文本显示。以下是函数的转换方式:

 private static bool ValidateSequenceNumber(string val, string num) {
     System.Globalization.CultureInfo inv=System.Globalization.CultureInfo.InvariantCulture;
        int seqNumber = unchecked((((int)Double.Parse(num,System.Globalization.NumberStyles.Any,inv) + 0xCED9) * 0x8088405) & 0xFFFF);
        string checksum = seqNumber.ToString("X",inv).ToUpperInvariant();
        if (checksum != val.Substring(11, 4)) {
            return false;
        }
        return true;
    }

编辑:添加了 Unchecked 关键字:将发生的溢出错误在这里似乎并不重要。

The string functions used should also use the invariant culture, since the function doesn't appear to be used for text display. Below is how the function might be converted:

 private static bool ValidateSequenceNumber(string val, string num) {
     System.Globalization.CultureInfo inv=System.Globalization.CultureInfo.InvariantCulture;
        int seqNumber = unchecked((((int)Double.Parse(num,System.Globalization.NumberStyles.Any,inv) + 0xCED9) * 0x8088405) & 0xFFFF);
        string checksum = seqNumber.ToString("X",inv).ToUpperInvariant();
        if (checksum != val.Substring(11, 4)) {
            return false;
        }
        return true;
    }

EDIT: Added Unchecked keyword: the overflow errors that would occur appear to be unimportant here.

深府石板幽径 2024-11-26 07:43:51
public bool validateSequenceNumber(string val, int num)
{
    float seqNumber = (Int32)((Single.Parse(num) + 0xCED9) * 0x8088405) & 0xFFFF;
    string checksum = seqNumber.ToString("X").ToUpper();
    return (checksum != val.Substring(11, 4) ? false : true);
}
public bool validateSequenceNumber(string val, int num)
{
    float seqNumber = (Int32)((Single.Parse(num) + 0xCED9) * 0x8088405) & 0xFFFF;
    string checksum = seqNumber.ToString("X").ToUpper();
    return (checksum != val.Substring(11, 4) ? false : true);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文