Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ärva EventHandlers?

Postades av 2003-05-12 09:52:15 - Walle Hallman, i forum c# (c-sharp), Tråden har 5 Kommentarer och lästs av 826 personer

Hejsan

Har en basklass där jag skapar lite events och har därför mina evenhandlers i denna klass. Men då jag sedan ärver från från denna så finns inte eventhandlerna i denna klassen utan jag får skriva

<code>
basklass.MyEventHandler += ...
</code>

går det inte att få så att man ärver vidare dessa. Eftersom nästan alla mina klasser ärver från denna basklass så kommer den funktionen som hanterar händelsen att få ta emot alla händelser från alla klasser som ärver från denna basklass.

Om det inte går så skulle det vara intressant att veta varför detta inte fungerar..

/w


Svara

Sv: Ärva EventHandlers?

Postades av 2003-05-12 11:06:32 - Fredrik Salomonsson

Hej.

Hur deklarerar du dina delegater/eventhandels??
Testa "protected".

//fredda


Svara

Sv: Ärva EventHandlers?

Postades av 2003-05-12 12:16:44 - Walle Hallman

<code>
public delegate void EventHandler(object sender, EventArgs e);
</code>

Men om jag deklarerar dem protected så kommer jag bara åt dem från den klassen som ärver basklassen..


Svara

Sv: Ärva EventHandlers?

Postades av 2003-05-12 15:58:56 - Patrik Löwendahl

delegates och events är att räkna som klasser. Det medför att om de är innanför klass deklarationen är de nästlade klasser.

Lite exempel kod:

<code>
class App
{
static void Main(string[] args)
{
dog d = new dog();
mammal m = new mammal();
d.EatEvent += new mammal.eatHandler(OnEat);
m.EatEvent += new mammal.eatHandler(OnEat);

d.Eat();
m.Eat();
}

static void OnEat(object sender, EventArgs e)
{
Console.WriteLine("A {0} is eating..", sender.ToString());
}

}


public class mammal
{
public delegate void eatHandler(object sender, EventArgs e);
public event eatHandler EatEvent;
public void Eat()
{
EatEvent(this, null);
}
public override string ToString()
{
return "mammal";
}
}

public class dog: mammal
{
public override string ToString()
{
return "dog";
}
}
</code>

För att komma åt event handlern utan en referens till klassen som "äger" den, måste du därför lägga den globalt i namespacet:

<code>
public delegate void eatHandler(object sender, EventArgs e);

public class mammal
{
public event eatHandler EatEvent;
</code>

Nu kan du skriva följande:

<code>
d.EatEvent += new eatHandler(OnEat);
m.EatEvent += new eatHandler(OnEat);
</code>

Självklart förutsatt att du är i samma namespace som klassen eller har deklarerat ett using direktiv


Svara

Sv: Ärva EventHandlers?

Postades av 2003-05-12 17:47:38 - Walle Hallman

Kanonsvar !!

Tusen tack.. Både en lösning och beskrivning..

Tackar igen

/w


Svara

Sv: Ärva EventHandlers?

Postades av 2003-05-13 07:31:19 - Fredrik Salomonsson


Patrik:

Vilken lektion!!
Jag tackar också.

//fredda


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
813
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies