E' semplice, elimina la riga in cui verifichi se l'evento non sia Nothing:
codice:
If PushpinMoved IsNot Nothing Then
End if
In VB.Net non c'è bisogno di verificare la dichiarazione di un'evento.
IN VB.Net se non si dichiara l'evento non si scatena, in C# se non si dichiara si solleva invece un'eccezione, ecco il motivo per cui ha senso di esistere la riga di codice :
codice:
if (PushpinMoved != null)
{
}
Per cui in C# avrò:
codice:
public partial class GoogleMapForASPNet
{
public delegate void SampleEventHandler(object sender);
public event SampleEventHandler SampleEvent;
public void RaiseSampleEvent()
{
if (SampleEvent != null)
{
SampleEvent(this);
}
}
}
codice:
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
GoogleMapForASPNet myClassEvent = new GoogleMapForASPNet();
myClassEvent.SampleEvent += new GoogleMapForASPNet.SampleEventHandler(myClassEvent_Done);
myClassEvent.RaiseSampleEvent();
}
private void myClassEvent_Done(object sender)
{
Console.WriteLine("L'evento si è scatenato....");
}
Se non dichiari l'evento
codice:
myClassEvent.SampleEvent += new GoogleMapForASPNet.SampleEventHandler(myClassEvent_Done);
otterrai un'eccezione al momento del richiamo dell'evento se prima non fai un controllo.
In VB.net la stessa cosa si puo scrivere: con:
codice:
Public Class Class1
Public Event SampleEvent(ByVal testo As String)
Sub RaiseSampleEvent()
RaiseEvent SampleEvent("test")
End Sub
End Class
codice:
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim myClassEvent As New Class1
AddHandler myClassEvent.SampleEvent, AddressOf myClassEvent_Done
myClassEvent.RaiseSampleEvent()
End Sub
Private Sub myClassEvent_Done(ByVal pID As String)
Console.WriteLine("L'evento si è scatenato....")
End Sub
End Class
Se non dichiari l'evento con
codice:
AddHandler myClassEvent.SampleEvent, AddressOf myClassEvent_Done
myClassEvent.RaiseSampleEvent()
l'evento semplicemente non si scatena.