【问题标题】:Need some help converting VB.NET code to C#需要一些帮助将 VB.NET 代码转换为 C#
【发布时间】:2009-07-24 18:52:11
【问题描述】:

我有一个用 VB.NET 编写的 CRC 类。我在 C# 中需要它。我使用在线转换器开始使用,但出现了一些错误。

byte[] buffer = new byte[BUFFER_SIZE];
iLookup = (crc32Result & 0xff) ^ buffer(i);

在那一行,编译器给了我这个错误:

编译器错误消息: CS0118:“缓冲区”是“变量”,但用作“方法”

有什么办法可以解决这个问题吗?

谢谢!

【问题讨论】:

  • 在第一分钟内回答这个问题的人赢得代表:P

标签: c# code-conversion


【解决方案1】:

buffer(i) 更改为buffer[i]

【讨论】:

  • 该死!秒杀我! +1
  • 更像是 Beat Jon Skeet 效果。
  • @Matthew Jones:是的,除了他得到的代表比你多,即使他在问题发布 10 天后回答了问题。他超越了速度。
  • 如果你有五个答案,而 Jon Skeet 有五个答案,那么 Jon Skeet 的代表比你多。
【解决方案2】:

将 buffer(i) 更改为 buffer[i],因为 VB 数组描述符是 (),而 C# 数组描述符是 []。

【讨论】:

    【解决方案3】:

    使用方括号代替圆括号。

    iLookup = (crc32Result & 0xff) ^ buffer[i];
    

    【讨论】:

      【解决方案4】:
      buffer[i];  //not buffer(i)
      

      你用括号代替括号。

      【讨论】:

        【解决方案5】:

        您需要在第二行末尾使用方括号而不是圆括号。

        ^ 缓冲区[i];

        【讨论】:

          【解决方案6】:

          您想将 () 更改为 []。 C# 中的数组索引是使用方括号完成的,而不是圆括号。

          所以

          iLookup = (crc32Result & 0xff) ^ buffer[i];
          

          【讨论】:

            【解决方案7】:

            应该是

            iLookup = (crc32Result & 0xff) ^ 缓冲区**[i]**

            【讨论】:

              【解决方案8】:

              我假设这两者之间缺少一些线?否则,您总是会与零进行异或...

              "buffer" 是一个字节数组,在 C# 中使用方括号访问。 “缓冲区(一);”看起来 C# 编译器就像一个方法调用,它知道你已经将它声明为一个变量。试试“buffer[i];”而是。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-05-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2023-03-29
                • 1970-01-01
                相关资源
                最近更新 更多