Нужна помощь в преобразовании кода VB.NET в C #

2

У меня есть класс CRC, написанный на VB.NET. Мне нужно это на С#. Я использовал онлайн-конвертер, чтобы начать работу, но я получаю некоторые ошибки.

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

В этой строке компилятор дает мне эту ошибку:

Сообщение об ошибке компилятора: CS0118: "buffer" - это "переменная", но используется как "метод"

Любые идеи, как я мог это исправить?

Спасибо!

  • 0
    повтор побед для любого, кто ответил на этот вопрос в течение первой минуты: P
Теги:
code-conversion

8 ответов

12
Лучший ответ

Измените buffer(i) на buffer[i]

  • 1
    Проклятье! Побей меня за секунды! +1
  • 0
    то же самое, мне нужно научиться печатать быстрее ... +1 вам обоим.
Показать ещё 3 комментария
10

Изменить буфер (i) на буфер [i], поскольку дескрипторы массива VB - это(), а дескрипторы массива С# - [].

  • 0
    +1 для дополнительного объяснения.
7

Используйте скобки вместо круглых скобок.

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

вы использовали скобки вместо скобок.

5

он должен быть

iLookup = (crc32Result и 0xff) ^ buffer ** [ i] **

5

Вы хотите изменить() на []. Индексирование массива в С# выполняется с использованием квадратных скобок, а не круглых скобок.

Итак,

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

Вам нужны квадратные скобки вместо круглых в конце второй строки.

^ buffer [i];

0

Я предполагаю, что между этими двумя линиями нет пропущенных строк? В противном случае вы всегда будете делать XOR с нулем...

"buffer" - это байтовый массив, к которому обращаются квадратные скобки в С#. "Буфер (I);" смотрит на компилятор С# как вызов метода, и он знает, что вы объявили его как переменную. Попробуйте "buffer [i];" вместо этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню