2013-03-10 98 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(); 
} 
相關問題