2009-07-24 2 views
2

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

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

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

Compiler Error Message: CS0118: 'buffer' is a 'variable' but is used like a 'method'

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

Спасибо!

+0

репутация победителя для всех, кто ответил на этот вопрос в течение первой минуты: P –

ответ

12

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

+1

Dammit! Ударьте меня за секунды! +1 –

+0

То же самое, мне нужно научиться печатать быстрее ... +1 к вам обоим. –

+0

Больше похоже на эффект Beat Jon Skeet. –

7

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

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

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

5

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

^буфер [i];

5

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

Так

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

Изменить буфер (I) в буфер [я ], поскольку дескрипторы массива VB являются() и дескрипторами массива C# являются [].

+0

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

0

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

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

Смежные вопросы