需要一些帮助将 VB.NET 代码转换为 C#
我有一个用 VB.NET 编写的 CRC 类。 我需要它在 C# 中。 我使用在线转换器来开始,但我遇到了一些错误。
byte[] buffer = new byte[BUFFER_SIZE];
iLookup = (crc32Result & 0xff) ^ buffer(i);
在那一行,编译器给了我这个错误:
编译器错误消息: CS0118:“缓冲区”是“变量”,但使用方式类似于“方法”
有什么想法可以解决这个问题吗?
谢谢!
I have a CRC class written in VB.NET. I need it in C#. I used an online converter to get me started, but I am getting some errors.
byte[] buffer = new byte[BUFFER_SIZE];
iLookup = (crc32Result & 0xff) ^ buffer(i);
On that line, the compiler gives me this error:
Compiler Error Message: CS0118: 'buffer' is a 'variable' but is used like a 'method'
Any ideas how I could fix this?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
将
buffer(i)
更改为buffer[i]
Change
buffer(i)
tobuffer[i]
将 buffer(i) 更改为 buffer[i],因为 VB 数组描述符是 (),C# 数组描述符是 []。
Change buffer(i) to buffer[i] as VB array descriptors are () and C# array descriptors are [].
使用方括号代替圆括号。
Use brackets instead of parentheses.
您使用括号而不是方括号。
you used parenthesis instead of brackets.
第二行末尾需要方括号而不是圆括号。
^ 缓冲区[i];
You need square brackets instead of round ones at the end of the second line.
^ buffer[i];
您想将 () 更改为 []。 C# 中的数组索引是使用方括号而不是圆括号完成的。
所以
You want to change the () to []. Array indexing in C# is done using square brackets, not parentheses.
So
它应该是
iLookup = (crc32Result & 0xff) ^ buffer**[i]**
it should be
iLookup = (crc32Result & 0xff) ^ buffer**[i]**
我认为这两者之间缺少一些线条? 否则,您总是会与零进行异或...
“缓冲区”是一个字节数组,在 C# 中通过方括号进行访问。 “缓冲区(一);” C# 编译器将其视为方法调用,并且它知道您已将其声明为变量。 尝试“缓冲区[i];” 反而。
I assume there are some lines missing between these two? Otherwise, you are always going to be doing an XOR with zero...
"buffer" is a byte array, and is accessed with the square brackets in C#. "buffer(i);" looks to the C# compiler like a method call, and it knows you have declared it as a variable. Try "buffer[i];" instead.