我在将此代码( 使用此FFmpeg Wrapper )转换为C#时遇到了麻烦,因为它是我项目的主要语言。
我试过http://www.developerfusion.com/tools/convert/vb-to-csharp/ 但结果代码不能与我合作:(
我知道这是一个新手请求,对不起;
守则:
Public WithEvents MediaConverter As New FFLib.Encoder
Private Sub ConOut(ByVal prog As String, ByVal tl As String) Handles MediaConverter.Progress
OperationPrgrss.Value = prog
Application.DoEvents()
End Sub
Private Sub stat(ByVal status) Handles MediaConverter.Status
StatusLbl.Text = status
Application.DoEvents()
End Sub
答案 0 :(得分:1)
C#与Handles
关键字没有严格的等价物;你需要做的是在构造函数中自己添加事件处理程序。
public Form1() {
...
// wire up events
MediaConverter.Progress += ConOut;
MediaConverter.Status += stat;
}
你不需要WithEvents
的等价物,因为它只告诉VB有事件需要连接,而在C#中你自己这样做。
其余的是非常简单的翻译。 Sub
基本上是void
返回类型ByVal
的函数,Handles
子句可以消失,关键字是小写,其余只是分号和大括号。< / p>
例如,
private void ConOut(String prog, String tl) {
OperationPrgrss.Value = prog;
Application.DoEvents();
}