Halo, ini adalah posting kedelapan saya tentang fitur dari VB9 yaitu Relaxed Delegates, anda dapat melihat posting saya sebelumnya:
- Implicitly typed local vaiable
- Object initializer
- Anonymous types
- Nullable types
- If Ternary operator
- Partial Method
- Extension Method
Pada VB8 jika anda mengaktifkan pilihan option strict menjadi “Off” maka compiler VB secara otomatis akan mengkonversi dari satu tipe data ke tipe data yang lain tanpa harus menuliskannya secara eksplisit (casting), misal untuk melakukan narrowing conversion (dari double menjadi integer). Pada VB9 fasilitas semacam itu juga ditambahkan namun untuk signatur delegates.
Pada VB8 jika anda menggunakan delegates seperti berikut:
1: Delegate Sub Hello(ByVal h As Object)
2: Module Module1
3: Sub Kenalan(ByVal h As String)
4: Console.WriteLine("Helloo" & h)
5: End Sub
6: Sub Main()
7: Dim hai As New Hello(AddressOf Kenalan)
8: hai("Erick")
9: End Sub
10: End Module
maka compiler VB akan memberikan pesan error bahwa tipe datanya tidak sama beda signatur delegates antara “object” dan “string”
Tapi pada VB9 kasus seperti diatas tidak akan terjadi lagi karena compiler VB9 sudah cukup smart untuk mengkonversi dari “object” ke “string”