2015-02-12 4 views
1

В соответствии с моим последним вопросом я заимствую некоторый код из проекта Opus для интеграции в программное обеспечение VB.NET.Преобразование байтового массива C# в VB.NET

Рассмотрим

byte[] buff = _encoder.Encode(segment, segment.Length, out len); 

который я перевел на:

Dim buff(wavEnc.Encode(segment, segment.Length, len)) As Byte 

Он бросает:

Значение типа '1-одномерный массив Byte' не может быть преобразуется в ошибку «Целое число» ...

Как я могу исправить эту проблему?

ответ

3

Попробуйте это:

Dim buff = wavEnc.Encode(segment, segment.Length, len) 

Конечно, вы можете сделать прямой перевод C#:

Dim buff As Byte() = wavEnc.Encode(segment, segment.Length, len) 

Нет необходимости для типа вообще - пусть цифра компилятора его.

+2

Этот ответ имеет правильный перевод, но я добавлю, что «дайте компилятору понять это», это прекрасно, если вы действительно имеете в виду компилятор (Option Infer), а не время исполнения (опция Strict Off). –

+0

@JoelCoehoorn - Хорошая точка. I ** всегда ** имеет опцию Infer On' и 'Option Strict On' при работе в VB.NET. Я надеюсь, что все будут, но вы, вероятно, правы, что не все. – Enigmativity

0

_encoder.Encode() - это правая часть задания. Левая часть представляет собой массив байтов.

Способ, которым вы используете его в своем образце VB, является в качестве измерения размера массива: целочисленным.

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