---
title: "Events..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/171318-events"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "CatZ"
published: "2008-05-07T21:49:16.000Z"
updated: "2008-05-26T21:50:49.000Z"
replies: 7
views: 775
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/171318-events"
---

# Events...

## #1 — CatZ, 2008-05-07T21:49Z

En riktig nybörjarfråga, har inte kollat så mycket på events tidigare men jag har en kontroll som jag vill tilldela event. Räcker det inte med 

```
public class myClass
{
	myControl.Event += new Event(myControl_Event);
	
	public void myControl_Event(object o, EventArgs e)
	{
		//DoStuff!
	}
}
```

Permalänk: https://www.webforum.nu/p/171318

## #2 — CatZ, 2008-05-07T21:57Z

Äsch det var inget, jag försökte skapa delegaten i fel klass...

Permalänk: https://www.webforum.nu/p/2108721

## #3 — Nickemannen, 2008-05-07T21:58Z

Jo, men tänk på att EventArgs kan vara något annat samt att new EventHandler kan vara någon annan typ av EventHandler, men man behöver inte skriva new EventHandler utan köra med metodnamnet direkt.
I vilka lägen man ska använda new EventHandler eller inte vet jag faktiskt inte, jag har sökt lite efter info men inte hittat någon, jag vet iallfall att ReSharper föreslår att man skall ta bort det.

Antingen kan man använda denna.

```
public class MyClass
{

private EventFiringClass _eventFiringClass

public MyClass
{
_eventFiringClass.ThingHappend += EventFiringClassThingHappend;
}

private void EventFiringClassThingHappend(object sender, EventArgs e)
{
// Do stuff
}
```

Permalänk: https://www.webforum.nu/p/2108722

## #4 — Gladh, 2008-05-08T12:34Z

> **nickemannen skrev:**
>
> I vilka lägen man ska använda new EventHandler eller inte vet jag faktiskt inte, jag har sökt lite efter info men inte hittat någon, jag vet iallfall att ReSharper föreslår att man skall ta bort det.

Jag TROR det är så att för all event där din mottagar funktion matchar utseendet: (object sender, EventAtgs e) så har MS överlagrat += new EventHandler så att du bara kan kallar direkt på metodnamnet som du gör i ditt exempel.

Men så får du ändrar på utseendet för mottagar funktion så att du inte längre tar emot ett object och ett eventArgs, utan kanske bara tar emot : CustomerChangedEventArgs. Så måste du skapa en ny EventHandler som du sedan skall koppla ditt event till..

som sagt det är vad jag TROR, vet att MS har gjort en "massa mystiska förkortningar" till .NET 3.0/3.5 så det är möjligt att man aldrig behöver skapa sina eventhandlers längre utan kan anropa direkt till metoderna, dock inget jag testat...

\- M

Permalänk: https://www.webforum.nu/p/2108806

## #5 — Nickemannen, 2008-05-08T12:39Z

> **Gladh skrev:**
>
> Jag TROR det är så att för all event där din mottagar funktion matchar utseendet: (object sender, EventAtgs e) så har MS överlagrat += new EventHandler så att du bara kan kallar direkt på metodnamnet som du gör i ditt exempel.
> 
> Men så får du ändrar på utseendet för mottagar funktion så att du inte längre tar emot ett object och ett eventArgs, utan kanske bara tar emot : CustomerChangedEventArgs. Så måste du skapa en ny EventHandler som du sedan skall koppla ditt event till..
> 
> som sagt det är vad jag TROR, vet att MS har gjort en "massa mystiska förkortningar" till .NET 3.0/3.5 så det är möjligt att man aldrig behöver skapa sina eventhandlers längre utan kan anropa direkt till metoderna, dock inget jag testat...
> 
> \- M

Detta skall gå i 2.0:an också.

Dock så måste man ju fortfarande definera sina event i klassen som kör dom t.ex.

public event EventHandler SomethingHappend;

men som jag skrev ovanför så räcker det att man skriver.

MyClass.SomeThingHappend += DoSomeThing;

Permalänk: https://www.webforum.nu/p/2108807

## #6 — CatZ, 2008-05-19T01:01Z

En av de där odokumenterade sakerna från M$, tredje saken jag dykt på de senaste tre veckorna som ingen haft någont "dokumenterat" svar på. Spännande att det fungerar på det viset... (dock lite... skrämmande mycket åt vb-hållet)

Permalänk: https://www.webforum.nu/p/2111129

## #7 — spango, 2008-05-19T07:38Z

Häda inte, det här är snarare snott från språk som Lisp :)

Det är inte speciellt konstigt med det här (och har man trist kan man läsa kapitel 15 i The C# Language Specification ;)). En EventHandler är ju bara en helt vanlig delegate, och där ett delegate förväntas kan ett funktionsuttryck (vare sig det är lambdauttryck, en anonym funktion eller en metodreferens) automatiskt slås in i ett Delegate-objekt så länge som signaturen stämmer. Allting går att avgöra helt statiskt, de har bara skalat bort en del syntaktisk overhead.

Permalänk: https://www.webforum.nu/p/2111143

## #8 — CatZ, 2008-05-26T21:50Z

Jaha, hade du för lite att göra i skolan eller? :p

Tack för infon!

Permalänk: https://www.webforum.nu/p/2112707

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/171318-events
