Ahora mismo estaba leyendo sobre las declaraciones de los eventos y delegados en C#, para entenderlo.. y al menos convertirlo para Vb.Net
Los delegados te va a llevar más tiempo, no lo vas a comprender a la perfección con una lectura, debes practicar.
Actualmente estoy leyendo un curso de Vb.Net, del Guille noc si será el mas indicado, por otro lado estoy en un proyecto que me supera en muchas cosas y ando dando tumbos tratando de entender algunas funciones..
No soy nadie para dar mi opinión sobre los tutoriales de El Guille, pero es un señor muy popular ...por algo será. Recuerdo haber leido un tutorial online que escribió para enseñar VB6, hace muchos años ya, y en algo me ayudó a manejarme por la IDE y cosas muy sencillitas (yo no tenia ni idea de VB), pero no he leido nada suyo de VB.NET.
Puedes explicarme porque lo de las malas costumbre en el codigo que te di.
Simplemente son patrones estándar de diseño, todos los lenguajes imponen sus propios patrones de diseño que el programador debería seguir al pie de la letra, Microsoft sugiere una guía de diseño a la hora de llevar a cabo implementaciones de "X", y es conveniente cumplir con esos patrones de diseño (aunque no sea obligatorio) por que, entre otras cosas, generalmente ofrece ventajas, por ejemplo usar nomenclaturas correctas ayuda
al compiler a la VM de .NET a identificar los miembros con mayor rapidez, o también tomar la costumbre de implementar un constructor privado (Private Sub New) imposibilita que el usuario final pueda instanciar una class de manera incorrecta, son muchas las guías de diseño y el por qué de sus ventajas.
Aquí tienes muchas guías de diseño reunidas:
En esas guías podemos encontrar la que nos interesa, el patrón de diseño de un Evento:
Y nos dice claramente como lo debemos implementar y una de sus ventajas al seguir este patrón de diseño:
El código de C# (o la traducción que hiciste en VB.NET) no está siguiendo la primera regla de diseño mencionada en la imagen, y a raíz de eso tampoco sigue la otra regla.
Saludos