我有一个用 VB.NET 编写的 CRC 类。我在 C# 中需要它。我使用在线转换器让我开始使用,但我遇到了一些错误。
byte[] buffer = new byte[BUFFER_SIZE];
iLookup = (crc32Result & 0xff) ^ buffer(i);
在那一行,编译器给了我这个错误:
编译器错误消息: CS0118:“缓冲区”是“变量”,但用作“方法”
有什么想法可以解决这个问题吗?
谢谢!
我有一个用 VB.NET 编写的 CRC 类。我在 C# 中需要它。我使用在线转换器让我开始使用,但我遇到了一些错误。
byte[] buffer = new byte[BUFFER_SIZE];
iLookup = (crc32Result & 0xff) ^ buffer(i);
在那一行,编译器给了我这个错误:
编译器错误消息: CS0118:“缓冲区”是“变量”,但用作“方法”
有什么想法可以解决这个问题吗?
谢谢!
更改buffer(i)
为buffer[i]
将 buffer(i) 更改为 buffer[i],因为 VB 数组描述符是 (),C# 数组描述符是 []。
使用括号代替圆括号。
iLookup = (crc32Result & 0xff) ^ buffer[i];
buffer[i]; //not buffer(i)
您使用括号而不是括号。
您需要在第二行末尾使用方括号而不是圆括号。
^ 缓冲区[i];
您想将 () 更改为 []。C# 中的数组索引是使用方括号而不是圆括号完成的。
所以
iLookup = (crc32Result & 0xff) ^ buffer[i];
它应该是
iLookup = (crc32Result & 0xff) ^ 缓冲区**[ i ]**
我假设这两者之间缺少一些线?否则,你总是会用零做一个 XOR ......
“buffer”是一个字节数组,在 C# 中使用方括号访问。“缓冲区(一);” 看起来 C# 编译器就像一个方法调用,它知道你已经将它声明为一个变量。试试“buffer[i];” 反而。