Je crois savoir qu'il n'est pas possible d'avoir un paramètre facultatif dans un délégué dans la version de VB fournie avec VS2008.
Cependant, je me demande s'il existe des solutions de contournement ou des plans pour incorporer cette fonctionnalité dans VB.NET à l'avenir ?
Ce que j'aimerais faire :
Public Delegate Function Deserializer(Of T)(ByRef Buffer() As Byte, optional ByRef BufferPosition As Integer = 0) As T
'Implementation of a func that matches the delegate'
Class A
Public Function Deserialize(Byref Buffer() as Byte, optional Byref BufferPosition as integer = 0)
....
En l'absence de spécification de "facultatif" dans le délégué lui-même, il serait au moins agréable de pouvoir le faire dans l'implémentation de la fonction uniquement :
Public Delegate Function Deserializer(Of T)(ByRef Buffer() As Byte, ByRef BufferPosition As Integer) As T
'Implementation of a func that matches the delegate'
Class A
Public Function Deserialize(Byref Buffer() as Byte, optional Byref BufferPosition as integer = 0)
....
Au moins de cette deuxième façon, les fonctions du délégué auront toujours une valeur associée à chaque paramètre, bien que certaines puissent provenir du côté de la fonction et non du côté de l'appelant.