2015-02-12 182 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维阵列' 的值不能为转换为'整数'错误...

我该如何解决这个问题?

回答

3

试试这个:

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

当然你也可以做C#的直接翻译:

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

不需要一个类型的话 - 让编译器看着办吧。

+2

这个答案有正确的翻译,但是我会补充说“只要你确实是指编译器(Option Infer)”,而不是运行时(Option Strict Off),那么“让编译器算出来”是很好的。 – 2015-02-12 04:37:17

+0

@JoelCoehoorn - 好点。当我在VB.NET中工作时,我总是**拥有'Option Infer On'和'Option Strict On'。我希望每个人都会,但你可能是对的,不是每个人都这样做。 – Enigmativity 2015-02-12 07:17:50

0

_encoder.Encode()是作业的右侧。左侧是一个字节数组。

你在你的VB示例中使用它的方式是作为一个数组维:Integer。