2010-12-15 34 views
2

我如何在vb.net翻譯如何翻譯newButton.Click + =委託{window.IsOpen = false; };在vb.net

newButton.Click += delegate { window.IsOpen = false; }; 

+4

http://www.developerfusion.com/tools/convert/ csharp-to-vb/ – RPM1984 2010-12-15 09:15:39

+0

這真的很酷,到目前爲止我還沒有發現任何錯誤。 – 2010-12-15 09:19:29

+1

是啊不知道它是如何工作的 - 也許它編譯語言到IL然後再回到目標語言。誰知道,但iz很酷。 – RPM1984 2010-12-15 09:22:55

回答

3

另外一個(與VS 2010)

AddHandler newButton.Click, 
    Sub(s As Object, e As EventArgs) 
     window.IsOpen = false 
    End Sub 

following should also work: 

AddHandler newButton.Click, 
    Sub() 
     window.IsOpen = false 
    End Sub 

編輯:對於VS 2008,多語句匿名方法是不可能的,所以它會像

AddHandler newButton.Click, _ 
     Function(s As Object, e As EventArgs) window.IsOpen = false 
+1

VS2008版本不起作用,它需要返回一個值,因爲它是一個Function。它正在做一個布爾比較而不是分配IsOpen屬性。仍然+1,因爲高度回覆的答案是錯誤的。 – 2010-12-15 16:26:58

+0

@Hanks,感謝您指出錯誤 - 但是會有其他語法嗎?看起來好像VS 2008無法實現。 – VinayC 2010-12-16 04:19:01

6

如何

newButton.Click += Function() Do 
    window.IsOpen = False 
End Function 

這是非常有益的

Convert C# to VB.NET

+1

您確定這是有效的嗎? VinayC的[答案](http://stackoverflow.com/questions/4448323/how-do-i-translate-newbutton-click-delegate-window-isopen-false-in-vb/4448368#4448368)看起來更好。我實際上並沒有在編譯器中試過你的代碼,但我認爲它應該是'AddHandler'而不是'+ =',我不認爲它可以是'Function',因爲事件處理程序是無效的(沒有返回值),和「Do」看起來完全錯誤。 – MarkJ 2010-12-15 10:13:08

+0

這是無意義的代碼。 – 2010-12-15 16:23:31

+1

-1這是**錯誤**。認真,請**刪除**這個答案。在線轉換器都會出錯。代碼不能編譯。 @不知道任何VB的高層人士:請不要高調回答這個問題。 – MarkJ 2012-11-02 12:42:50