任何人都可以将此vb.net代码转换为C#?
问题描述:
因为它是我项目的主要语言,所以我在将这段代码(使用FFmpeg Wrapper)转换为C#时遇到了麻烦。任何人都可以将此vb.net代码转换为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
答
C#没有与Handles
关键字严格等效;您需要做的是在构造函数中自己添加事件处理函数。
public Form1() {
...
// wire up events
MediaConverter.Progress += ConOut;
MediaConverter.Status += stat;
}
您不需要等效的WithEvents
,因为这只是告诉VB有事件需要连线,而在C#中,您自己也是如此。
其余的是一个非常简单的翻译。 A Sub
基本上是void
返回类型的函数,ByVal
和Handles
子句可以消失,关键字是小写的,剩下的只是分号和大括号。
例如,
private void ConOut(String prog, String tl) {
OperationPrgrss.Value = prog;
Application.DoEvents();
}
您需要手动添加使用'+ ='事件处理程序。 – SLaks 2013-03-10 20:42:19