【问题标题】:Translate C# code to VBNET将 C# 代码转换为 VB NET
【发布时间】:2013-11-29 21:38:34
【问题描述】:

我需要将这个 C# 代码从此处的 NReplayGainhttps://github.com/karamanolev/NReplayGain 转换为工作的 VBNET 代码。

TrackGain trackGain = new TrackGain(44100, 16);
foreach (sampleSet in track) {
    trackGain.AnalyzeSamples(leftSamples, rightSamples)
}
double gain = trackGain.GetGain();
double peak = trackGain.GetPeak();

我已经翻译了这个:

Dim trackGain As New TrackGain(samplerate, samplesize)

Dim gain As Double = trackGain.GetGain()
Dim peak As Double = trackGain.GetPeak()

【问题讨论】:

  • 有一些不错的在线翻译选项。你试过什么?你在 NAudio 上看到过这个 SO Post 吗?
  • 任何在线服务都无法翻译 foreach 指令,因为括号内的“值”不是值/变量,因此翻译器应返回 EOF 错误。我没有发现那个 NAudio 问题(感谢您提供信息),但问题是 lib 似乎只为音频程序员大师和大师编写的,不是任何易于使用的,任何直观的,真的很难,我需要一个知道如何触摸该库以检索 mp3 文件示例数据的示例(使用或不使用 Naudio)。谢谢。 PS:对不起我的英语。
  • 你可以为此翻译所有的图书馆
  • 这个问题似乎是题外话,因为它是关于你的代码翻译
  • @rene 代码翻译不是 SO 中的题外话或禁忌问题,您可以看到关于代码翻译的现有标签,反正我的问题在很久以前就已经解决了,那为什么现在要说这个评论呢?感谢阅读再见

标签: c# .net vb.net naudio code-translation


【解决方案1】:

使用在线转换器。 C# 到 VB 转换器:

您上面显示的 c# 代码有错误。可能它是用伪代码编写的。我在你提到的github地址上没有找到任何样本集的声明。

缺少分号(在循环内)。未声明循环变量sampleSetleftSamplesrightSamples 来自哪里?在循环内部不使用循环变量。可能左右样本是样本集的一部分。如果我更正此问题,我可以使用这些在线转换器之一来转换代码。

C#:

TrackGain trackGain = new TrackGain(44100, 16);
foreach (SampleSet sampleSet in track) {
    trackGain.AnalyzeSamples(sampleSet.leftSamples, sampleSet.rightSamples);
}
double gain = trackGain.GetGain();
double peak = trackGain.GetPeak();

VB:

Dim trackGain As New TrackGain(44100, 16)
For Each sampleSet As SampleSet In track
    trackGain.AnalyzeSamples(sampleSet.leftSamples, sampleSet.rightSamples)
Next
Dim gain As Double = trackGain.GetGain()
Dim peak As Double = trackGain.GetPeak()

毕竟,这两个版本看起来并没有那么不同!

【讨论】:

  • 谢谢,我的问题的代码和网页上的一样,是的,很明显那些“采样”字是伪代码,它指的是音频文件的 auido 样本数据,我只需要翻译像你一样使用伪词的语法,再次感谢。
  • 我认为如果我编辑我的原始问题并为 NAudio 部分做一个新问题会更好
【解决方案2】:

在用不同语言编写的程序集中引用是相当简单的。 我经常从 F# 中引用 C# 代码,并从 C# 中引用 VB.NET 代码。 只需确保编译两个项目以针对相同的框架版本,例如 .NET 4.5 或 Mono 2.10 和 CPU 架构。

如果您需要将文件驻留在相同的程序集中。我建议您研究 C# 语法并手动转换它。

编辑:浏览存储库后,我只看到少数类。 除了学习新语言之外,学习新语言也是提高您以您已经熟悉的语言编写代码和阅读代码的能力的好方法。

【讨论】:

  • 谢谢你的信息,但我很抱歉我认为你误解了这个问题或我的话,我不需要参考 C# 项目,我已经编译了 NAudio 库然后我可以使用它在VBNET中,我的问题的代码是来自其他库的一小段代码(仅此而已),这是一个非常小的库,该库的目的是计算文件的重放增益,但首先我需要使用 GIANT NAudio 库从 mp3 文件中检索必要的数据。谢谢
【解决方案3】:

一个很好的在线解决方案,可以将 .NET 翻译成 C#,反之亦然,翻译成另一种语言,因为 JavaScript 是 CodeTranslator - Carlossag。到目前为止,我对这个翻译器没有任何问题。

【讨论】:

  • 该翻译器效率低下和/或过时,翻译失败很多,并且不能正确翻译插值字符串。我发现最好的解决方案是 Tangible 软件中的 Instant C#Instant VB,它是一款付费软件,但比所有软件都好免费的在线解决方案,比 Telerik Code Converter 效率高得多,我认为它是最好的免费解决方案(比其他免费解决方案效率低)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多