[c#] delegate/event

Pagina: 1
Acties:

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 22-05 09:18
ik heb dus 2 klasses 1 ontvangt data via tcp/ip en de andere klasse dient te reageren zodra zich bepaalde events voordoen in de "ontvang" klasse...nu ben ik net begonnen met events/delegates en heb diverse tutorials doorgenomen maar nu ik de source van een van die tutorials bijna letterlijk overneem gaat het dus al fout....

code van de "ontvang" klasse:
code:
1
2
3
4
5
6
7
8
9
10
11
public delegate void EventDelegate(object from, EventArgs args);

public event EventDelegate myEvent;

protected virtual void onMyEvent(EventArgs args)
{
    if (myEvent!=null)
    {
        myEvent(this, args);
    }
}


code van de klasse die dient te reageren op events:
code:
1
2
3
4
5
6
test.myEvent += m_Client.EventDelegate(onEvent);

public void onEvent(object t, EventArgs e)
{
    Console.WriteLine("Event called");
}


als ik nu dus compileer krijg ik de volgende fout melding:
Method 'Form1.onEvent(object, System.EventArgs)' referenced without parentheses
heeft dus betrekking op:
code:
1
m_Client.myEvent += m_Client.EventDelegate(onEvent);


maar zo staat het dus in elke tutorial die ik gezien heb...zie ik iets over het hoofd?

  • Rolgordijn
  • Registratie: Januari 2000
  • Laatst online: 30-06-2022
Je dient een nieuwe instantie van de delegate toe te kennen aan je event.

code:
1
m_Client.myEvent += new EventDelegate( onEvent );

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 22-05 09:18
LOL.....duh....bedankt...heb ik dus +/- 10 keer die tutorials doorgelezen om te kijken wat ik fout doe...en moet ik dus elke keer over dat woordje "new" heen gelezen hebben....

  • Rolgordijn
  • Registratie: Januari 2000
  • Laatst online: 30-06-2022
Dat zijn inderdaad van die dingen waar je makkelijk overheen leest :)

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 22-05 09:18
Nog een vraag/probleem.
code doet het nu maar zodra ik het uitvoer krijg ik dus de volgende error:
System.NullReferenceException: Object reference not set to an instance of an object.

code:
1
m_Client.myEvent += new Client.EventDelegate( onEvent );


wat doe ik nu weer verkeerd of ben ik weer iets kleins vergeten...

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 22-05 09:18
duh!....laat maar....weer iets doms van mij dus...m_Client = new Client() werd dus pas aangeroepen nadat ik registreer voor het event.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

chrisO schreef op 23 september 2004 @ 13:14:
duh!....laat maar....weer iets doms van mij dus...m_Client = new Client() werd dus pas aangeroepen nadat ik registreer voor het event.
Ik snap even je post niet, Je kreeg een null-reference exception ofzo, wat is de bedoeling van deze post? :?

  • ungarmax
  • Registratie: December 2001
  • Laatst online: 29-06-2021
Hij heeft het al opgelost ;)
Pagina: 1