下面的代碼通過代表元Delegate簡化代碼的編寫,在運行時將調用不同的代表元方法,然后顯示相應的運行結果。 在VB.NET中,代表元Delegate有點類似C語言中的指針,也就是說它允許用戶傳送一個進程的引用,然后調用這些引用的進程。這是一個強有力的編程技術,它將允許用戶不再需要If或者是Select語句就可以調用相應的進程,這里的代表元起著橋梁的作用。 新建記事本,下面是代碼:
Imports System Imports System.Windows.Forms Public Module mymodule Delegate Sub mydele(ByVal my1 As Int32, ByVal my2 As Int32) Sub main() Dim dele As mydele dele = AddressOf my_add dele.Invoke(10, 20) dele = AddressOf my_sub dele.Invoke(10, 20) dele = AddressOf my_mul dele.Invoke(10, 20) dele = AddressOf my_div dele.Invoke(10, 20) End Sub Public Sub my_add(ByVal num1 As Int32, ByVal num2 As Int32) MessageBox.Show("Add:" & (num1 + num2).ToString, "你好", MessageBoxButtons.OK) End Sub
Public Sub my_sub(ByVal num1 As Int32, ByVal num2 As Int32) MessageBox.Show("Add:" & (num1 - num2).ToString) End Sub
Public Sub my_mul(ByVal num1 As Int32, ByVal num2 As Int32) MessageBox.Show("Add:" & (num1 * num2).ToString) End Sub
Public Sub my_div(ByVal num1 As Int32, ByVal num2 As Int32) MessageBox.Show("Add:" & (num1 / num2).ToString) End Sub
以Delegate.vb保存。 然后編譯: vbc /r:System.dll /r:System.Windows.forms.dll Delegate.vb 最后看結果就行了:)
|