2013-03-10 102 views
0

因为它是我项目的主要语言,所以我在将这段代码(使用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 
+0

您需要手动添加使用'+ ='事件处理程序。 – SLaks 2013-03-10 20:42:19

回答

1

C#没有与Handles关键字严格等效;您需要做的是在构造函数中自己添加事件处理函数。

public Form1() { 
    ... 

    // wire up events 
    MediaConverter.Progress += ConOut; 
    MediaConverter.Status += stat; 
} 

您不需要等效的WithEvents,因为这只是告诉VB有事件需要连线,而在C#中,您自己也是如此。

其余的是一个非常简单的翻译。 A Sub基本上是void返回类型的函数,ByValHandles子句可以消失,关键字是小写的,剩下的只是分号和大括号。

例如,

private void ConOut(String prog, String tl) { 
    OperationPrgrss.Value = prog; 
    Application.DoEvents(); 
} 
相关问题