Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,39 @@
|
|||
' Delegate declaration is similar to C#.
|
||||
Delegate Function Func2(a As Integer, b As Integer) As Integer
|
||||
|
||||
Module Program
|
||||
Function Add(a As Integer, b As Integer) As Integer
|
||||
Return a + b
|
||||
End Function
|
||||
|
||||
Function Mul(a As Integer, b As Integer) As Integer
|
||||
Return a * b
|
||||
End Function
|
||||
|
||||
Function Div(a As Integer, b As Integer) As Integer
|
||||
Return a \ b
|
||||
End Function
|
||||
|
||||
' Call is a keyword and must be escaped using brackets.
|
||||
Function [Call](f As Func2, a As Integer, b As Integer) As Integer
|
||||
Return f(a, b)
|
||||
End Function
|
||||
|
||||
Sub Main()
|
||||
Dim a = 6
|
||||
Dim b = 2
|
||||
|
||||
' Delegates in VB.NET could be created without a New expression from the start. Both syntaxes are shown here.
|
||||
Dim add As Func2 = New Func2(AddressOf Program.Add)
|
||||
|
||||
' The "As New" idiom applies to delegate creation.
|
||||
Dim div As New Func2(AddressOf Program.Div)
|
||||
|
||||
' Directly coercing the AddressOf expression:
|
||||
Dim mul As Func2 = AddressOf Program.Mul
|
||||
|
||||
Console.WriteLine("f=Add, f({0}, {1}) = {2}", a, b, [Call](add, a, b))
|
||||
Console.WriteLine("f=Mul, f({0}, {1}) = {2}", a, b, [Call](mul, a, b))
|
||||
Console.WriteLine("f=Div, f({0}, {1}) = {2}", a, b, [Call](div, a, b))
|
||||
End Sub
|
||||
End Module
|
||||
Loading…
Add table
Add a link
Reference in a new issue