Another one in the same line - IObservable and IObserver.
The current way of implanting this: https://docs.microsoft.com/en-us/dotnet/api/system.iobservable-1?view=netframework-4.8 and https://docs.microsoft.com/en-us/dotnet/api/system.iobserver-1?view=netframework-4.8
The easy VB syntax would then be:
Public Observable Class MyClass
'The OnNext, OnError and OnCompleted are available immediately and can be used anywhere.
'Data type for OnNext is Dynamic
End Class
'The observing On Next Sub:
Public Sub MyObserver(sender As Object, value as Dynamic) Observes MyClass.OnNext
'Sender has the instance that is being observed
'Value has the next value
End Sub
'The observing On Error Sub:
Public Sub MyObserver(sender As Object, ex As Exception) Observes MyClass.OnError
'Sender has the instance that is being observed
'ex has the occurred exception
End Sub
'The observing On Completed Sub:
Public Sub MyObserver(sender As Object) Observes MyClass.OnCompleted
'Sender has the instance that is being observed
End Sub
So again, a syntax just like WithEvents and Handles.