2

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

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

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

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

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

谢谢!

4

8 回答 8

12

更改buffer(i)buffer[i]

于 2009-07-24T18:54:15.453 回答
10

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

于 2009-07-24T18:55:18.913 回答
7

使用括号代替圆括号。

iLookup = (crc32Result & 0xff) ^ buffer[i];
于 2009-07-24T18:54:21.927 回答
5
buffer[i];  //not buffer(i)

您使用括号而不是括号。

于 2009-07-24T18:54:36.420 回答
5

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

^ 缓冲区[i];

于 2009-07-24T18:54:43.050 回答
5

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

所以

iLookup = (crc32Result & 0xff) ^ buffer[i];
于 2009-07-24T18:54:51.270 回答
5

它应该是

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

于 2009-07-24T18:55:04.203 回答
0

我假设这两者之间缺少一些线?否则,你总是会用零做一个 XOR ......

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

于 2009-07-24T19:20:34.150 回答