2014-04-26 54 views
4

好吧,我是一個翻譯使用C# into VB.NETdeveloper fusion,以及API沒有翻譯我的那部分......C#事件+ =委託{}相當於在VB.NET

owner.IsVisibleChanged += delegate 
      { 
       if (owner.IsVisible) 
       { 
        Owner = owner; 
        Show(); 
       } 
      }; 

我知道+= is for AddHandler owner.IsVisibleChanged, AdressOf (delegate??),所以,這是相當於那部分?

在此先感謝。

PD:我沒有足夠的錢爲.net反射 :(我浪費了審判

+0

也有免費的反編譯器。 [Jetbrains DotPeek](http://www.jetbrains.com/decompiler/)和[ILSpy](http://ilspy.net/)例如.. –

+0

等待,您是否將代碼轉換爲C#(如您的問題所述),還是進入VB.NET(就像你的問題標題所說)? – hvd

+0

對不起,我錯了,我正在翻譯C#到VB.NET – z3nth10n

回答

4

有兩個部分在這裏

  1. 匿名。在C#中的delegate大致對應於VB中的匿名Sub這裏。

  2. 添加事件處理程序。 C#中的+=,VB中的AddHandler

將其組合在一起:

AddHandler owner.IsVisibleChanged, _ 
    Sub() 
     … 
    End Sub 

順便說一句,你所提到的AddressOf運營商在VB中被用來指一個(非匿名)方法,無需調用它。因此,如果您要引用現有的已命名方法而不是匿名方法,則可以在此處使用它。

+0

謝謝!你很快! :d – z3nth10n