厳密でないデリゲートの場合は、対応するメソッドの中でパラメータの指定を完全に省略することも可能です。
' Definition of delegate Del2, which has two parameters.
Delegate Function Del2(ByVal arg1 As Integer, ByVal arg2 As String) As Integer
' The assigned lambda expression specifies no parameters, even though
' Del2 has two parameters. Because the assigned function in this
' example is a lambda expression, Option Strict can be on or off.
' Compare the declaration of d16, where a standard function is assigned.
Dim d11 As Del2 = Function() 3
' The parameters are still there, however, as defined in the delegate.
Console.WriteLine(d11(5, "five"))
' Not valid.
' Console.WriteLine(d11())
' Console.WriteLine(d11(5))
一部のパラメータを指定して、その他のパラメータを省略することはできません。
' Not valid.
'Dim d12 As Del2 = Function(p As Integer) p
パラメータを省略する書き方は、複雑なパラメータがいくつもかかわっているイベント ハンドラを定義する場合などに便利です。イベント ハンドラは、場合によっては引数を使用しないことがあります。つまり、イベントが登録されているコントロールの状態に直接アクセスして、引数を無視する、という場合です。厳密でないデリゲートでは、あいまいさを残さない限り、そのような宣言で引数を省略してもかまいません。たとえば、パラメータを完全に指定した以下の OnClick メソッドは、RelaxedOnClick として書き換えることができます。
Sub OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles b.Click
MessageBox.Show("Hello World from" + b.Text)
End Sub
Sub RelaxedOnClick() Handles b.Click
MessageBox.Show("Hello World from" + b.Text)
End Sub