2015-02-12 230 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。